Skip to content

Python 3.15.0~b1, test_frame_pointer_unwind fails on riscv64 #150919

@davidlt

Description

@davidlt

Bug report

Bug description:

While compiling python3.15-3.15.0~b1-1.fc44.src.rpm for riscv64 on Fedora 44 we noticed test_frame_pointer_unwind failing.

[..]
1 test failed:
    test_frame_pointer_unwind
475 tests OK.
1:03:08 load avg: 1.27 Re-running 1 failed tests in verbose mode in subprocesses
1:03:08 load avg: 1.27 Run 1 test in parallel using 1 worker process (timeout: 2 hour 15 min, worker timeout: 2 hour 20 min)
1:03:12 load avg: 1.25 [1/1/1] test_frame_pointer_unwind failed (1 failure)
Re-running test_frame_pointer_unwind in verbose mode (matching: test_manual_unwind_respects_frame_pointers)
test_manual_unwind_respects_frame_pointers (test.test_frame_pointer_unwind.FramePointerUnwindTests.test_manual_unwind_respects_frame_pointers) ... #00 0x8000000000000000 -> other
{"length": 1, "python_frames": 0, "jit_frames": 0, "other_frames": 1, "jit_backend": null, "unwinder": "manual_frame_pointer_unwind"}
  test_manual_unwind_respects_frame_pointers (test.test_frame_pointer_unwind.FramePointerUnwindTests.test_manual_unwind_respects_frame_pointers) (env={'PYTHON_JIT': '0'}) ... FAIL
======================================================================
FAIL: test_manual_unwind_respects_frame_pointers (test.test_frame_pointer_unwind.FramePointerUnwindTests.test_manual_unwind_respects_frame_pointers) (env={'PYTHON_JIT': '0'})
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/python3.15-3.15.0_b1-build/Python-3.15.0b1/Lib/test/test_frame_pointer_unwind.py", line 257, in test_manual_unwind_respects_frame_pointers
    self.assertGreaterEqual(
    ~~~~~~~~~~~~~~~~~~~~~~~^
        python_frames,
        ^^^^^^^^^^^^^^
        STACK_DEPTH,
        ^^^^^^^^^^^^
        f"expected to find Python frames on {self.machine} with env {env}",
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
AssertionError: 0 not greater than or equal to 10 : expected to find Python frames on riscv64 with env {'PYTHON_JIT': '0'}
----------------------------------------------------------------------
Ran 1 test in 1.398s
FAILED (failures=1)
test test_frame_pointer_unwind failed
[..]

Full build log is available here: https://riscv-kojipkgs.fedoraproject.org//work/tasks/2456/222456/build.log

More details in the build task (if needed): https://riscv-koji.fedoraproject.org/koji/taskinfo?taskID=222456

I very briefly asking Gemini 3.5 Flash to look at it, and it said that Modules/_testinternalcapi.c needs proper values for FRAME_POINTER_NEXT_OFFSET and FRAME_POINTER_RETURN_OFFSET set on riscv64. I haven't deeply looked at it. Just adding it as a potential hint.

CPython versions tested on:

3.15

Operating systems tested on:

Linux

Metadata

Metadata

Assignees

No one assigned

    Labels

    testsTests in the Lib/test dirtype-bugAn unexpected behavior, bug, or error
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions