MagicStack / MagicStack/uvloop

AttributeError: type object 'async_generator_asend' has no attribute 'f_lineno'

Abierto
#699 1 comentario 0 reacciones 0 asignados Ver en GitHub

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

Bug Description

Getting AttributeError: type object 'async_generator_asend' has no attribute 'f_lineno' exceptions when handling multipart form uploads in FastAPI with uvloop.

Environment
  • Python version: 3.12.11
  • uvloop version: 0.21.0
  • OS: Linux (Docker)
  • Framework: FastAPI with uvicorn
Steps to Reproduce
  1. Use FastAPI with uvloop enabled
  2. Upload file via multipart form data
  3. Exception appears in logs during async generator cleanup
Full Traceback
Exception ignored in: <async_generator object Request.stream at 0x7f6f1be8f920>
Traceback (most recent call last):
  File "uvloop/loop.pyx", line 3187, in uvloop.loop.Loop._asyncgen_finalizer_hook
  File "uvloop/loop.pyx", line 1289, in uvloop.loop.Loop.call_soon_threadsafe
  File "uvloop/cbhandles.pyx", line 329, in uvloop.loop.new_Handle
  File "uvloop/cbhandles.pyx", line 15, in uvloop.loop.Handle._set_loop
  File "uvloop/cbhandles.pyx", line 427, in uvloop.loop.extract_stack
  File "/usr/local/lib/python3.12/traceback.py", line 395, in extract
    return klass._extract_from_extended_frame_gen(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/traceback.py", line 418, in _extract_from_extended_frame_gen
    for f, (lineno, end_lineno, colno, end_colno) in frame_gen:
                                                     ^^^^^^^^^
  File "/usr/local/lib/python3.12/traceback.py", line 392, in extended_frame_gen
    for f, lineno in frame_gen:
                     ^^^^^^^^^
  File "/usr/local/lib/python3.12/traceback.py", line 336, in walk_stack
    yield f, f.f_lineno
             ^^^^^^^^^^
AttributeError: type object 'async_generator_asend' has no attribute 'f_lineno'

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.

Línea de trabajo

Reproduce la carga multipart con Python 3.12.11, uvloop 0.21.0, FastAPI y uvicorn en Linux. Después inspecciona uvloop/loop.pyx alrededor de _asyncgen_finalizer_hook y uvloop/cbhandles.pyx alrededor de extract_stack, usando la ruta de llamadas de traceback.py como contexto. Se considera terminado cuando la limpieza del generador asíncrono ya no provoca el AttributeError notificado.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
backend
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.