MagicStack / MagicStack/uvloop
AttributeError: type object 'async_generator_asend' has no attribute 'f_lineno'
未关闭
还没有人认领这个 Issue。
- 主要语言
- Cython
- 星标
- 11.9k
- 派生
- 616
- PR 合并指标
- 30 天内没有已合并 PR
描述
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
- Use FastAPI with uvloop enabled
- Upload file via multipart form data
- 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'
贡献指南
这个仓库没有索引到贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
在 Linux 上使用 Python 3.12.11、uvloop 0.21.0、FastAPI 和 uvicorn 重现 multipart 上传。然后以 traceback.py 的调用路径为上下文,检查 uvloop/loop.pyx 中 _asyncgen_finalizer_hook 附近的代码,以及 uvloop/cbhandles.pyx 中 extract_stack 附近的代码。异步生成器清理不再引发报告的 AttributeError,即表示完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- python
- 领域
- backend
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 需要澄清
- 新手友好度
- 35/100