MagicStack / MagicStack/uvloop
Transport sockets do not support shutdown() method
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: 0.12.2
- Python version: 3.5.3
- Platform: Debian 9
- Can you reproduce the bug with
PYTHONASYNCIODEBUGin env?: yes
An attempt to use shutdown method of transport socket causes following exception:
source_traceback: Object created at (most recent call last):
File "/usr/local/bin/ssh-tarpit", line 11, in <module>
sys.exit(main())
File "/usr/local/lib/python3.5/dist-packages/ssh_tarpit/__main__.py", line 109, in main
loop.run_until_complete(amain(args, loop))
File "/usr/lib/python3.5/asyncio/streams.py", line 238, in connection_made
self._stream_writer)
File "/usr/local/lib/python3.5/dist-packages/ssh_tarpit/server.py", line 52, in _spawn
self._loop.create_task(self.handler(reader, writer)))
Traceback (most recent call last):
File "/usr/lib/python3.5/asyncio/tasks.py", line 239, in _step
result = coro.send(None)
File "/usr/lib/python3.5/asyncio/coroutines.py", line 125, in send
return self.gen.send(value)
File "/usr/local/lib/python3.5/dist-packages/ssh_tarpit/server.py", line 38, in handler
sock.shutdown(socket.SHUT_RD)
File "uvloop/pseudosock.pyx", line 155, in uvloop.loop.PseudoSocket.shutdown
File "uvloop/pseudosock.pyx", line 19, in uvloop.loop.PseudoSocket._na
TypeError: transport sockets do not support shutdown() method
Such behavior is not observed with default event loop.
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
Lee uvloop/pseudosock.pyx en PseudoSocket.shutdown y la ruta _na mostrada en el traceback; empieza por reproducir la llamada de apagado del socket con las versiones de Python y uvloop indicadas. Se considera terminado cuando el socket de transporte gestiona el apagado sin el TypeError indicado y coincide con el comportamiento del bucle de eventos predeterminado.
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
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 45/100