MagicStack / MagicStack/uvloop

SSL connection error while debug is enabled

Abierto
#449 1 comentario 0 reacciones 1 asignado Ver en GitHub

@fantix ya está trabajando en esto.

Desde el 27/10/2021.

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.15.2
  • Python version: 3.7.3
  • Platform: Debian GNU/Linux 10
  • Can you reproduce the bug with PYTHONASYNCIODEBUG in env?: yes
  • Does uvloop behave differently from vanilla asyncio? How?: yes, error in uvloop code

Sometimes when asyncio debug enabled (and connection is closed before starting SSL handshake? ) I got the error:

protocol: <uvloop.loop.SSLProtocol object at 0x7f69c01f4a20>
transport: <TCPTransport closed=False reading=False 0x16a0dc8>
Traceback (most recent call last):
  File "uvloop/handles/stream.pyx", line 987, in uvloop.loop.__uv_stream_buffered_on_read
  File "uvloop/loop.pyx", line 107, in uvloop.loop.run_in_context1
  File "uvloop/sslproto.pyx", line 379, in uvloop.loop.SSLProtocol.buffer_updated
  File "uvloop/sslproto.pyx", line 505, in uvloop.loop.SSLProtocol._do_handshake
  File "uvloop/sslproto.pyx", line 531, in uvloop.loop.SSLProtocol._on_handshake_complete
TypeError: unsupported operand type(s) for -: 'float' and 'NoneType'

Looks like you should check if handshake is started before getting _handshake_start_time sslproto.pyx:

        if self._loop.get_debug():
            dt = self._loop.time() - self._handshake_start_time
            aio_logger.debug("%r: SSL handshake took %.1f ms", self, dt * 1e3)

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.