MagicStack / MagicStack/uvloop
uvloop is broken for abstract sockets - create_unix_connection does not work for abstract sockets as libuv does not support them
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: master
- Python version: 3.10+
- Platform: unix
- Can you reproduce the bug with
PYTHONASYNCIODEBUGin env?: yes - Does uvloop behave differently from vanilla asyncio? How?: yes
uvloop:
tr = UnixTransport.new(self, protocol, None, waiter, context)
tr.connect(path) <--- uses uv_pipe_connect which uses uv__strscpy which assumes zero terminated string
asyncio:
sock_connect -> getsockaddrarg (in socketmodule.c) which uses memcpy
I have raised this with libuv as issue: https://github.com/libuv/libuv/discussions/3911
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par create_unix_connection et le chemin indiqué UnixTransport.new/tr.connect(path), puis comparez-le avec la gestion de socket_connect de vanilla asyncio. Lisez la discussion liée de libuv sur les sockets abstraites avant de décider si la correction doit être apportée dans uvloop ou dans libuv. Le travail est terminé lorsque les connexions à des sockets Unix abstraites fonctionnent comme prévu et que le comportement a été vérifié par rapport à 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é
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100