MagicStack / MagicStack/asyncpg

connection.close is throwing protocol error

Aberta
#490 8 comentários 2 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Linguagem predominante
Python
Estrelas
8.1k
Forks
468
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

asyncpg version: 0.18.1
PostgreSQL version: 9.5.10
Do you use a PostgreSQL SaaS? If so, which? Can you reproduce
the issue with a local PostgreSQL install?: using google cloud sql pg instance
Python version: 3.6.5
Platform: Ubuntu
Do you use pgbouncer?: No
Did you install asyncpg with pip?: Yes
If you built asyncpg locally, which version of Cython did you use?:
Can the issue be reproduced under both asyncio and
uvloop?: No

I have been facing this error for quite sometime intermittently `asyncpg.exceptions._base.InternalClientError: got result for unknown protocol state 0`

The entire stack trace:
```
File "/repo/server/schema_db.py", line 345, in read
await connection.close()

File "/usr/local/lib/python3.6/dist-packages/asyncpg/connection.py", line 1082, in close
await self._protocol.close(timeout)

File "asyncpg/protocol/protocol.pyx", line 560, in close

File "asyncpg/protocol/protocol.pyx", line 814, in asyncpg.protocol.protocol.BaseProtocol._dispatch_result

asyncpg.exceptions._base.InternalClientError: got result for unknown protocol state 0
```

Can someone explain when this exception is thrown and for what reason?
If i know the reason this exception is thrown, i can figure out the issue myself.
I'm not able to reproduce locally or in my stage environment.

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Direção de pesquisa

Comece pelo await connection.close() que está falhando em schema_db.py:345; em seguida, inspecione asyncpg/protocol/protocol.pyx em close e BaseProtocol._dispatch_result, usando o stack trace e os detalhes de versão relatados. Determine as condições intermitentes que produzem o estado de protocolo desconhecido com a instância PostgreSQL do Google Cloud SQL; o issue estará concluído quando a causa e um caminho confiável de reprodução ou verificação forem estabelecidos.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
postgresql, python
Domínio
databases
Tipo de issue
Bug
Dificuldade
4/5
Tempo estimado
3-5 dias
Status de atividade
Estagnada
Clareza
Precisa de esclarecimento
Facilidade para iniciantes
30/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.