MagicStack / MagicStack/uvloop
Transport sockets do not support shutdown() method
Nessuno ha ancora preso questa issue.
- Lingua principale
- Cython
- Stelle
- 11.9k
- Fork
- 616
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
- 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.
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Direzione di ricerca
Leggi uvloop/pseudosock.pyx in PseudoSocket.shutdown e il percorso _na mostrato nel traceback; inizia riproducendo la chiamata di shutdown del socket con le versioni di Python e uvloop indicate. Il lavoro è completato quando il socket di trasporto gestisce lo shutdown senza il TypeError segnalato e si comporta come il loop di eventi predefinito.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- networking
- Tipo di issue
- Bug
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 45/100