Skip to content

Special character in password raise timeout exception #894

Open
@demaet

Description

@demaet
  • asyncpg version: 0.25.0
  • PostgreSQL version: 10.6
  • Do you use a PostgreSQL SaaS?: no
  • Python version: 3.6.12
  • Platform: UNIX
  • Do you use pgbouncer?: no
  • Did you install asyncpg with pip?: yes

It seems that introduction of some special characters (here the ²) in password breaks the code: it hangs until connection timeout is reached. Even if the password/user/db are wrong. A wrong hostname (eg unavailable or without a responding 5432 port) raise an exception.

test:
conn = await asyncpg.connect(f'postgres://a@{host}/b', password='abc²def', timeout=10)

Traceback (most recent call last):
  File "./....py", line 152, in <module>
    loop.run_until_complete(a())
  File "/usr/lib64/python3.6/asyncio/base_events.py", line 488, in run_until_complete
    return future.result()
  File "./...py", line 134, in a
    conn = await asyncpg.connect(f'postgres://a@{host}/b', password='abc²def', timeout=10)
  File "~/.local/lib/python3.6/site-packages/asyncpg/connection.py", line 2102, in connect
    max_cacheable_statement_size=max_cacheable_statement_size,
  File "~/.local/lib/python3.6/site-packages/asyncpg/connect_utils.py", line 895, in _connect
    raise last_error
  File "~/.local/lib/python3.6/site-packages/asyncpg/connect_utils.py", line 888, in _connect
    record_class=record_class,
  File "~/.local/lib/python3.6/site-packages/asyncpg/connect_utils.py", line 781, in _connect_addr
    return await __connect_addr(params, timeout, True, *args)
  File "~/.local/lib/python3.6/site-packages/asyncpg/connect_utils.py", line 831, in __connect_addr
    await compat.wait_for(connected, timeout=timeout)
  File "~/.local/lib/python3.6/site-packages/asyncpg/compat.py", line 66, in wait_for
    return await asyncio.wait_for(fut, timeout)
  File "/usr/lib64/python3.6/asyncio/tasks.py", line 362, in wait_for
    raise futures.TimeoutError()
concurrent.futures._base.TimeoutError

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions