Segfault in `test_sampling_profiler`
未关闭
还没有人认领这个 Issue。
tests
topic-profiling
type-crash
- 主要语言
- Python
- 星标
- 77.2k
- 派生
- 35.9k
- PR 合并指标
- PR 指标待抓取
描述
Crash report
What happened?
A recent Buildbot run (AMD64 Debian root) saw a segfault in test_sampling_profiler: https://buildbot.python.org/#/builders/345/builds/12988
test_sampling_all_threads (test.test_profiling.test_sampling_profiler.test_integration.TestSampleProfilerIntegration.test_sampling_all_threads) ... Fatal Python error: Segmentation fault
Current thread 0x00007f85531fa740 [python] (most recent call first):
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/profiling/sampling/sample.py", line 75 in sample
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/profiling/sampling/sample.py", line 350 in sample
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/test_profiling/test_sampling_profiler/test_integration.py", line 521 in test_sampling_all_threads
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/unittest/case.py", line 613 in _callTestMethod
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/unittest/case.py", line 667 in run
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/unittest/case.py", line 723 in __call__
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/unittest/suite.py", line 122 in run
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/unittest/suite.py", line 84 in __call__
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/unittest/suite.py", line 122 in run
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/unittest/suite.py", line 84 in __call__
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/unittest/suite.py", line 122 in run
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/unittest/suite.py", line 84 in __call__
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/unittest/suite.py", line 122 in run
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/unittest/suite.py", line 84 in __call__
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/unittest/suite.py", line 122 in run
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/unittest/suite.py", line 84 in __call__
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/unittest/runner.py", line 257 in run
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/libregrtest/single.py", line 84 in _run_suite
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/libregrtest/single.py", line 42 in run_unittest
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/libregrtest/single.py", line 162 in test_func
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/libregrtest/single.py", line 118 in regrtest_runner
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/libregrtest/single.py", line 165 in _load_run_test
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/libregrtest/single.py", line 210 in _runtest_env_changed_exc
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/libregrtest/single.py", line 319 in _runtest
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/libregrtest/single.py", line 348 in run_single_test
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/libregrtest/worker.py", line 99 in worker_process
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/libregrtest/worker.py", line 134 in main
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/test/libregrtest/worker.py", line 138 in <module>
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/runpy.py", line 87 in _run_code
File "/root/buildarea/3.x.angelico-debian-amd64/build/Lib/runpy.py", line 196 in _run_module_as_main
Current thread's C stack trace (most recent call first):
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at _Py_DumpStack+0x33 [0x563947ed22d4]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at +0x3285b2 [0x563947eea5b2]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at +0x328caa [0x563947eeacaa]
Binary file "/lib/x86_64-linux-gnu/libc.so.6", at +0x3bfd0 [0x7f8553238fd0]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at _PyEval_EvalFrameDefault+0x5795 [0x563947e2bc9a]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at +0x280c92 [0x563947e42c92]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at +0x280e44 [0x563947e42e44]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at _PyFunction_Vectorcall+0x54 [0x563947cee2da]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at +0x12f1c1 [0x563947cf11c1]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at +0x12f326 [0x563947cf1326]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at +0x12da86 [0x563947cefa86]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at +0x12dd76 [0x563947cefd76]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at PyObject_Call+0x20 [0x563947cefdae]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at _PyEval_EvalFrameDefault+0x60a2 [0x563947e2c5a7]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at +0x280c92 [0x563947e42c92]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at +0x280e44 [0x563947e42e44]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at _PyFunction_Vectorcall+0x54 [0x563947cee2da]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at +0x12d7d3 [0x563947cef7d3]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at +0x12d99d [0x563947cef99d]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at +0x1c26af [0x563947d846af]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at +0x1c278d [0x563947d8478d]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at _PyObject_MakeTpCall+0xce [0x563947cee47c]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at +0x12c6af [0x563947cee6af]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at PyObject_Vectorcall+0x23 [0x563947cee6fd]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at _Py_VectorCall_StackRefSteal+0x86 [0x563947e237d2]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at _PyEval_EvalFrameDefault+0x90b2 [0x563947e2f5b7]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at +0x280c92 [0x563947e42c92]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at +0x280e44 [0x563947e42e44]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at _PyFunction_Vectorcall+0x54 [0x563947cee2da]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at +0x12f1c1 [0x563947cf11c1]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at +0x12f326 [0x563947cf1326]
Binary file "/root/buildarea/3.x.angelico-debian-amd64/build/python", at +0x12da86 [0x563947cefa86]
<truncated rest of calls>
A similar crash happened earlier in the run in test_sampling_with_collapsed_export.
CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux
Output from running 'python -VV' on the command line:
No response
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
从报告所指的第 75 行和第 350 行附近的 Lib/profiling/sampling/sample.py 开始,然后检查 test_sampling_all_threads 和 test_sampling_with_collapsed_export 附近的 Lib/test/test_profiling/test_sampling_profiler/test_integration.py。在 Linux 上复现失败的 sampling-profiler 测试并追踪 segfault。当受影响的测试在没有 segmentation fault 的情况下完成,并且相关测试套件覆盖了该回归时,即表示完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- python
- 领域
- performance, testing
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 需要澄清
- 新手友好度
- 30/100