3.15.0b2, openSUSE/Factory, i586: failing test: test_c_stack_unwind (specifically test_manual_unwind_finds_expected_frames)
还没有人认领这个 Issue。
- 主要语言
- Python
- 星标
- 77.2k
- 派生
- 35.9k
- PR 合并指标
- PR 指标待抓取
描述
Bug report
Bug description:
As a followup to https://github.com/python/cpython/issues/151040 I am creating this separate ticket for i586. The traceback is exactly the same:
[ 3208s] test_manual_unwind_finds_expected_frames (test.test_c_stack_unwind.ManualStackUnwindTests.test_manual_unwind_finds_expected_frames) (env={'PYTHON_JIT': '0'}) ... FAIL
[ 3208s]
[ 3208s] ======================================================================
[ 3208s] FAIL: test_manual_unwind_finds_expected_frames (test.test_c_stack_unwind.ManualStackUnwindTests.test_manual_unwind_finds_expected_frames) (env={'PYTHON_JIT': '0'})
[ 3208s] ----------------------------------------------------------------------
[ 3208s] Traceback (most recent call last):
[ 3208s] File "/home/abuild/rpmbuild/BUILD/python315-3.15.0_b2-build/Python-3.15.0b2/Lib/test/test_c_stack_unwind.py", line 285, in test_manual_unwind_finds_expected_frames
[ 3208s] self.assertGreaterEqual(
[ 3208s] ~~~~~~~~~~~~~~~~~~~~~~~^
[ 3208s] python_frames,
[ 3208s] ^^^^^^^^^^^^^^
[ 3208s] STACK_DEPTH,
[ 3208s] ^^^^^^^^^^^^
[ 3208s] f"expected to find Python frames on {self.machine} with env {env}",
[ 3208s] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[ 3208s] )
[ 3208s] ^
[ 3208s] AssertionError: 1 not greater than or equal to 10 : expected to find Python frames on i686 with env {'PYTHON_JIT': '0'}
[ 3208s]
[ 3208s] ----------------------------------------------------------------------
[ 3208s] Ran 1 test in 0.276s
[ 3208s]
[ 3208s] FAILED (failures=1)
Build log shows all used packages and steps required to be taken. The repository with the package source is https://src.opensuse.org/python-interpreters/python315
@vstinner on the other ticket commented:
That's a different architecture. If you care, you should open a separated issue for i586. You pass explicitly
-fomit-frame-pointerwhich goes against PEP 831 (approved in Python 3.15).
Yes, we have -fomit-frame-pointer specifically for i586 architecture.
CPython versions tested on:
3.15
Operating systems tested on:
Linux
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
从 Lib/test/test_c_stack_unwind.py 开始,特别关注第 285 行附近的 ManualStackUnwindTests.test_manual_unwind_finds_expected_frames,并使用 openSUSE python315 package build 在 i586 上复现该失败。检查 build log,以及与 PEP 831 相关的显式 -fomit-frame-pointer 设置。当失败的测试在 i586 上能够稳定通过,或平台限制已通过适当的测试结果记录下来时,即视为完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- linux, python
- 领域
- operating-systems, testing-qa
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 冷清
- 描述清晰度
- 需要澄清
- 新手友好度
- 45/100