Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

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.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
35/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
À l'abandon
Stack technique
python
Domaine
networking

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.

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

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

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.

Autres issues de MagicStack/uvloop

Toutes les issues de MagicStack/uvloop

Issues similaires

Plus d'issues Networking

Recevez les nouvelles issues par e-mail

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