MagicStack / MagicStack/uvloop

UDPTransport returning when data is empty

Aperta
#594 0 commenti 0 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

* **uvloop version**:
* **Python version**: <3.13
* **Platform**: MacOS
* **Can you reproduce the bug with `PYTHONASYNCIODEBUG` in env?**:
* **Does uvloop behave differently from vanilla asyncio? How?**: There is a change made in CPython 3.13 to remove this behaviour.

The Datagram transport in both `asyncio.DatagramTransport` and `uvloop.UDPTransport` will return and ignore calls to `sendto` if the data is empty. This prohibits users from sending zero-length datagrams.

The behaviour will be removed in CPython 3.13 (see https://github.com/python/cpython/issues/113812). Note that the public API in `uvloop` references the Python `asyncio` behaviour.

https://github.com/MagicStack/uvloop/blob/6c770dc3fbdd281d15c2ad46588c139696f9269c/uvloop/handles/udp.pyx#L284-L286

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 righe 284-286 di uvloop/handles/udp.pyx, dove UDPTransport attualmente ritorna in presenza di dati vuoti, e confronta la modifica di CPython 3.13 a cui si fa riferimento. Il lavoro è completato quando sendto non ignora più i datagrammi di lunghezza zero, preservando il comportamento documentato del trasporto asyncio.

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

Valutazione

Stack tecnologico
python
Ambito
networking
Tipo di issue
Bug
Difficoltà
2/5
Tempo stimato
1-3 ore
Stato di attività
Ferma
Chiarezza
Specificata chiaramente
Idoneità per principianti
42/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.