MagicStack / MagicStack/uvloop

uvloop is broken for abstract sockets - create_unix_connection does not work for abstract sockets as libuv does not support them

Ouverte
#528 4 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: master
  • Python version: 3.10+
  • Platform: unix
  • Can you reproduce the bug with PYTHONASYNCIODEBUG in 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

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

Recevez les nouvelles issues par e-mail

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