MagicStack / MagicStack/uvloop

TCP Transport RuntimeError with Python 3.13 + uvloop

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

Ninguém assumiu esta issue ainda.

Linguagem predominante
Cython
Estrelas
11.9k
Forks
616
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

TCP Transport RuntimeError with Python 3.13 + uvloop

Summary

uvloop is causing RuntimeError: unable to perform operation on <TCPTransport closed=True> errors when used with Python 3.13. Switching to --loop asyncio fixes the issue.

Environment

  • Python: 3.13.3
  • uvloop: (latest)
  • Starlette: 0.46.2
  • FastAPI: 0.115.14

Reproduction

  1. Use Python 3.13
  2. Run uvicorn with --loop uvloop
  3. Make concurrent HTTP requests (e.g., browser loading static files)
  4. Client disconnects/refreshes during response

Workaround

Use --loop asyncio instead of uvloop.

Expected

uvloop should handle closed connections gracefully like asyncio does.

Edit

I had a stray uvicorn process that had wracked up 9hrs of CPU time, this could potentially be the issue?

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 reproduzindo a falha com Python 3.13.3, uvloop e uvicorn usando requisições concorrentes e uma desconexão ou atualização do cliente; compare-a com --loop asyncio. Rastreie o TCPTransport closed=True RuntimeError e esclareça o processo uvicorn residual relatado. Considera-se concluído quando a configuração do uvloop lidar com conexões fechadas sem esse erro durante a reprodução.

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

Avaliação

Stack de tecnologia
python
Domínio
networking
Tipo de issue
Bug
Dificuldade
4/5
Tempo estimado
3-5 dias
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
38/100

Receba novas issues na sua caixa de entrada

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