MagicStack / MagicStack/uvloop

TCP Transport RuntimeError with Python 3.13 + uvloop

Aperta
#685 4 commenti 2 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Lingua principale
Cython
Stelle
11.9k
Fork
616
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

# TCP Transport RuntimeError with Python 3.13 + uvloop

## Summary
uvloop is causing `RuntimeError: unable to perform operation on ` 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?

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 riproducendo il malfunzionamento con Python 3.13.3, uvloop e uvicorn usando richieste concorrenti e una disconnessione o un aggiornamento del client; confrontalo con --loop asyncio. Traccia il TCPTransport closed=True RuntimeError e chiarisci la presenza del processo uvicorn residuo segnalato. Il lavoro è completato quando la configurazione di uvloop gestisce le connessioni chiuse senza questo errore durante la riproduzione.

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

Valutazione

Stack tecnologico
python
Ambito
networking
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
38/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.