MagicStack / MagicStack/uvloop

[openbsd] test_fs_event.py causes Segmentation fault in python

未關閉
#620 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

主要語言
Cython
星號
11.9k
分支
616
PR 合併指標
30 天內沒有已合併 PR

描述

  • uvloop version: 0.20.0
  • Python version: 3.11.9
  • Platform: OpenBSD
  • Can you reproduce the bug with PYTHONASYNCIODEBUG in env?: Yes
  • Does uvloop behave differently from vanilla asyncio? How?:

Test output for the specific test

===>  Regression tests for py3-uvloop-0.20.0
cd /usr/ports/pobj/py-uvloop-0.20.0-python3/uvloop-0.20.0 && env PYTHONASYNCIODEBUG=1 py.test -vvv 'tests/test_fs_event.py::Test_UV_FS_EVENT_CHANGE::test_fs_event_change'
============================= test session starts ==============================
platform openbsd7 -- Python 3.11.9, pytest-8.2.0, pluggy-1.5.0 -- /usr/local/bin/python3.11
cachedir: .pytest_cache
rootdir: /usr/ports/pobj/py-uvloop-0.20.0-python3/uvloop-0.20.0
configfile: pyproject.toml
collecting ... collected 1 item

tests/test_fs_event.py::Test_UV_FS_EVENT_CHANGE::test_fs_event_change Fatal Python error: Segmentation fault

Current thread 0x0000063d21efb7d0 (most recent call first):
  File "/usr/ports/pobj/py-uvloop-0.20.0-python3/uvloop-0.20.0/tests/test_fs_event.py", line 49 in test_fs_event_change
  File "/usr/local/lib/python3.11/unittest/case.py", line 579 in _callTestMethod
  File "/usr/local/lib/python3.11/unittest/case.py", line 623 in run
  File "/usr/local/lib/python3.11/unittest/case.py", line 678 in __call__
  File "/usr/local/lib/python3.11/site-packages/_pytest/unittest.py", line 343 in runtest
  File "/usr/local/lib/python3.11/site-packages/_pytest/runner.py", line 173 in pytest_runtest_call
  File "/usr/local/lib/python3.11/site-packages/pluggy/_callers.py", line 103 in _multicall
  File "/usr/local/lib/python3.11/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/usr/local/lib/python3.11/site-packages/pluggy/_hooks.py", line 513 in __call__
  File "/usr/local/lib/python3.11/site-packages/_pytest/runner.py", line 241 in <lambda>
  File "/usr/local/lib/python3.11/site-packages/_pytest/runner.py", line 341 in from_call
  File "/usr/local/lib/python3.11/site-packages/_pytest/runner.py", line 240 in call_and_report
  File "/usr/local/lib/python3.11/site-packages/_pytest/runner.py", line 135 in runtestprotocol
  File "/usr/local/lib/python3.11/site-packages/_pytest/runner.py", line 116 in pytest_runtest_protocol
  File "/usr/local/lib/python3.11/site-packages/pluggy/_callers.py", line 103 in _multicall
  File "/usr/local/lib/python3.11/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/usr/local/lib/python3.11/site-packages/pluggy/_hooks.py", line 513 in __call__
  File "/usr/local/lib/python3.11/site-packages/_pytest/main.py", line 364 in pytest_runtestloop
  File "/usr/local/lib/python3.11/site-packages/pluggy/_callers.py", line 103 in _multicall
  File "/usr/local/lib/python3.11/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/usr/local/lib/python3.11/site-packages/pluggy/_hooks.py", line 513 in __call__
  File "/usr/local/lib/python3.11/site-packages/_pytest/main.py", line 339 in _main
  File "/usr/local/lib/python3.11/site-packages/_pytest/main.py", line 285 in wrap_session
  File "/usr/local/lib/python3.11/site-packages/_pytest/main.py", line 332 in pytest_cmdline_main
  File "/usr/local/lib/python3.11/site-packages/pluggy/_callers.py", line 103 in _multicall
  File "/usr/local/lib/python3.11/site-packages/pluggy/_manager.py", line 120 in _hookexec
  File "/usr/local/lib/python3.11/site-packages/pluggy/_hooks.py", line 513 in __call__
  File "/usr/local/lib/python3.11/site-packages/_pytest/config/__init__.py", line 178 in main
  File "/usr/local/lib/python3.11/site-packages/_pytest/config/__init__.py", line 206 in console_main
  File "/usr/local/bin/py.test", line 8 in <module>

Extension modules: uvloop.loop (total: 1)
Segmentation fault (core dumped)
*** Error 139 in . (Makefile:40 'do-test')
*** Error 2 in . (/usr/ports/infrastructure/mk/bsd.port.mk:3090 '/usr/ports/pobj/py-uvloop-0.20.0-python3/.test_done': @cd /usr/ports/devel/...)
*** Error 2 in /usr/ports/devel/py-uvloop (/usr/ports/infrastructure/mk/bsd.port.mk:2704 'test': @lock=py3-uvloop-0.20.0;  export _LOCKS_HEL...)

貢獻指南

這個儲存庫沒有索引到貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

研究方向

故障回報位於 tests/test_fs_event.py 的第 49 行;首先在 OpenBSD 上使用 PYTHONASYNCIODEBUG=1 執行所提供的 pytest 命令。調查 test_fs_event_change 期間 uvloop.loop 的分段錯誤,並驗證目標測試完成時不會當機。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
python
領域
operating-systems
Issue 類型
缺陷
難度
4/5
預估耗時
3-5 天
活躍度
停滯
描述清晰度
需要釐清
新手友好度
35/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。