MagicStack / MagicStack/asyncpg
insufficient data in buffer
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Python
- Star
- 8.1k
- Fork
- 468
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
- asyncpg version: 0.29.0
- PostgreSQL version: 15.6
- Python version: 3.11.4
- Platform: debian
- Do you use pgbouncer?: no
- Did you install asyncpg with pip?: yes
- Can the issue be reproduced under both asyncio and
uvloop?: not sure
AssertionError: insufficient data in buffer: requested 8 remaining 4
File "sqlalchemy/ext/asyncio/engine.py", line 659, in execute
result = await greenlet_spawn(
File "sqlalchemy/util/_concurrency_py3k.py", line 200, in greenlet_spawn
result = context.throw(*sys.exc_info())
File "sqlalchemy/engine/base.py", line 1416, in execute
return meth(
File "sqlalchemy/sql/elements.py", line 517, in _execute_on_connection
return connection._execute_clauseelement(
File "sqlalchemy/engine/base.py", line 1639, in _execute_clauseelement
ret = self._execute_context(
File "sqlalchemy/engine/base.py", line 1848, in _execute_context
return self._exec_single_context(
File "sqlalchemy/engine/base.py", line 1988, in _exec_single_context
self._handle_dbapi_exception(
File "sqlalchemy/engine/base.py", line 2347, in _handle_dbapi_exception
raise exc_info[1].with_traceback(exc_info[2])
File "sqlalchemy/engine/base.py", line 1969, in _exec_single_context
self.dialect.do_execute(
File "sqlalchemy/engine/default.py", line 922, in do_execute
cursor.execute(statement, parameters)
File "sqlalchemy/dialects/postgresql/asyncpg.py", line 580, in execute
self._adapt_connection.await_(
File "sqlalchemy/util/_concurrency_py3k.py", line 130, in await_only
return current.driver.switch(awaitable) # type: ignore[no-any-return]
File "sqlalchemy/util/_concurrency_py3k.py", line 195, in greenlet_spawn
value = await result
File "sqlalchemy/dialects/postgresql/asyncpg.py", line 558, in _prepare_and_execute
self._handle_exception(error)
File "sqlalchemy/dialects/postgresql/asyncpg.py", line 509, in _handle_exception
self._adapt_connection._handle_exception(error)
File "sqlalchemy/dialects/postgresql/asyncpg.py", line 799, in _handle_exception
raise error
File "sqlalchemy/dialects/postgresql/asyncpg.py", line 546, in _prepare_and_execute
self._rows = await prepared_stmt.fetch(*parameters)
File "asyncpg/prepared_stmt.py", line 176, in fetch
data = await self.__bind_execute(args, 0, timeout)
File "asyncpg/prepared_stmt.py", line 241, in __bind_execute
data, status, _ = await self.__do_execute(
File "asyncpg/prepared_stmt.py", line 230, in __do_execute
return await executor(protocol)
File "asyncpg/protocol/protocol.pyx", line 207, in bind_execute
File "asyncpg/protocol/coreproto.pyx", line 70, in asyncpg.protocol.protocol.CoreProtocol._read_server_messages
File "asyncpg/protocol/coreproto.pyx", line 225, in asyncpg.protocol.protocol.CoreProtocol._process__bind_execute
File "asyncpg/protocol/coreproto.pyx", line 518, in asyncpg.protocol.protocol.CoreProtocol._parse_data_msgs
File "asyncpg/protocol/protocol.pyx", line 839, in asyncpg.protocol.protocol.BaseProtocol._decode_row
File "asyncpg/protocol/prepared_stmt.pyx", line 328, in asyncpg.protocol.protocol.PreparedStatementState._decode_row
File "asyncpg/protocol/codecs/base.pyx", line 330, in asyncpg.protocol.protocol.Codec.decode
File "asyncpg/protocol/codecs/base.pyx", line 230, in asyncpg.protocol.protocol.Codec.decode_scalar
File "asyncpg/pgproto/./codecs/float.pyx", line 33, in asyncpg.pgproto.pgproto.float8_decode
File "asyncpg/pgproto/./frb.pxd", line 27, in asyncpg.pgproto.pgproto.frb_read
File "asyncpg/pgproto/./frb.pyx", line 10, in asyncpg.pgproto.pgproto.frb_check
is it a network issue or somewhere I need to look into?
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu với các mục traceback trong asyncpg/protocol/coreproto.pyx, asyncpg/protocol/codecs/float.pyx và asyncpg/protocol/frb.pyx, sau đó xem xét đường dẫn thực thi bất đồng bộ của SQLAlchemy được hiển thị. Tái hiện lỗi với các phiên bản Python, PostgreSQL và asyncpg được báo cáo và xác định xem có thể cô lập bộ đệm bị cắt ngắn hay không. Công việc được xem là hoàn tất khi đã xác nhận nguyên nhân và có một regression test hoặc một bản tái hiện được ghi chép rõ ràng.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- postgresql, python, sqlalchemy
- Lĩnh vực
- databases
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Cần làm rõ
- Mức phù hợp với người mới
- 25/100