MagicStack / MagicStack/uvloop
uvloop is broken for abstract sockets - create_unix_connection does not work for abstract sockets as libuv does not support them
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Cython
- Estrellas
- 11.9k
- Forks
- 616
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
* **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
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Empieza en create_unix_connection y en la ruta mostrada UnixTransport.new/tr.connect(path), y compárala después con el manejo de socket_connect de vanilla asyncio. Lee la discusión enlazada de libuv sobre los sockets abstractos antes de decidir si la corrección corresponde a uvloop o a libuv. Se considera terminado cuando las conexiones a sockets Unix abstractos funcionan como se espera y el comportamiento se ha verificado frente a asyncio.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- python
- Área
- networking
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100