MagicStack / MagicStack/asyncpg
Fetching from pgpool-II hangs indefinitely
未关闭
还没有人认领这个 Issue。
- 主要语言
- Python
- 星标
- 8.1k
- 派生
- 468
- PR 合并指标
- 30 天内没有已合并 PR
描述
- asyncpg version: 0.20.1
- PostgreSQL version: 12.2
- Do you use a PostgreSQL SaaS? If so, which? Can you reproduce
the issue with a local PostgreSQL install?: No. - Python version: Python 3.7.7 (default, Apr 23 2020, 14:43:26)
- Platform: [GCC 8.3.0] on linux
- Do you use pgbouncer?: No, I use pgpool-II 4.1.1
- Did you install asyncpg with pip?: No, with poetry
- If you built asyncpg locally, which version of Cython did you use?: No
- Can the issue be reproduced under both asyncio and
uvloop?: Yes
When querying the database through pgpool-II it hangs indefinitely, without raising any kind of exception. Connecting to database seems to be working, since for instance invalid password raises an exception:
asyncpg.exceptions.InternalServerError: md5 authentication failed
DETAIL: password does not match
Steps to reproduce:
import asyncio
import asyncpg
async def run():
conn = await asyncpg.connect(user='user', password='password',
database='database', host='127.0.0.1') # connect to pgpool-II
values = await conn.fetch('''SELECT 1''') # hangs here indefinitely
await conn.close()
loop = asyncio.get_event_loop()
loop.run_until_complete(run())
When connecting to the PostgreSQL directly, the example above works flawlessly.
Log from pgpool-II:
May 13 20:56:00 pg01 pgpool[11982]: 2020-05-13 20:56:00: pid 13189: ERROR: unable to read data from frontend
May 13 20:56:00 pg01 pgpool[11982]: 2020-05-13 20:56:00: pid 13189: DETAIL: EOF encountered with frontend
贡献指南
这个仓库没有索引到贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
从提供的 Python 复现开始,分别通过 pgpool-II 和直接对 PostgreSQL 运行它,以确认行为在哪些地方不同。以 pgpool-II 日志为依据,调查 asyncpg connection 和 conn.fetch 路径;当 SELECT 1 完成,或不再无限期挂起而是抛出有用的 exception 时,即视为完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- postgresql, python
- 领域
- databases
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100