MagicStack / MagicStack/asyncpg

insufficient data in buffer

Aperta
#1,147 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
Python
Stelle
8.1k
Fork
468
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

  • 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?

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia dalle voci del traceback in asyncpg/protocol/coreproto.pyx, asyncpg/protocol/codecs/float.pyx e asyncpg/protocol/frb.pyx, quindi esamina il percorso di esecuzione asincrona di SQLAlchemy mostrato. Riproduci il problema con le versioni indicate di Python, PostgreSQL e asyncpg e determina se è possibile isolare il buffer troncato. Il lavoro è completo quando sono disponibili una causa confermata e un test di regressione oppure una riproduzione chiaramente documentata.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
postgresql, python, sqlalchemy
Ambito
databases
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.