MagicStack / MagicStack/uvloop

UDPTransport returning when data is empty

Ouverte
#594 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Langage dominant
Cython
Étoiles
11.9k
Forks
616
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

* **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

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par les lignes 284-286 de uvloop/handles/udp.pyx, où UDPTransport retourne actuellement lorsque les données sont vides, et comparez la modification référencée de CPython 3.13. Le travail est terminé lorsque sendto n’ignore plus les datagrammes de longueur nulle, tout en préservant le comportement documenté du transport asyncio.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python
Domaine
networking
Type d'issue
Bug
Difficulté
2/5
Temps estimé
1-3 heures
Activité
À l'abandon
Clarté
Clairement spécifiée
Accessibilité débutants
42/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.