python / python/cpython

test_tracemalloc: test_tracemalloc_track_race() crashs on GHA iOS CI

Open
#150,485 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

interpreter-core OS-android OS-ios tests type-crash
Dominant language
Python
Stars
77.2k
Forks
35.9k
PR merge metrics
PR metrics pending

Description

Crash report

iOS: https://github.com/python/cpython/actions/runs/26457870719/job/77897032289?pr=150441

This issue is likely the same as issue gh-143143, but I'm not 100% sure so I created a separated issue.

    0:11:19 load avg: 2.79 [435/505] test_tracemalloc
  Fatal Python error: Segmentation fault
  
  Current thread 0x0000000322193000 (most recent call first):
  
  Thread 0x0000000321187000 (most recent call first):
  
  Thread 0x000000032017b000 (most recent call first):
  
  (...)
  
  Thread 0x00000003100bb000 (most recent call first):
  
  <freed thread state>
  
  Current thread's C stack trace (most recent call first):
    Binary file "/Users/runner/work/cpython/cpython/cross-build/iOS-testbed.1779809388208/DerivedData/Build/Products/Debug-iphonesimulator/Python.framework/Python", at _Py_DumpStack+0x44 [0x102407804]
    Binary file "/Users/runner/work/cpython/cpython/cross-build/iOS-testbed.1779809388208/DerivedData/Build/Products/Debug-iphonesimulator/Python.framework/Python", at faulthandler_fatal_error+0x264 [0x10241e4a0]
    Binary file "/usr/lib/system/libsystem_platform.dylib", at _sigtramp+0x34 [0x100a6f7e0]
    Binary file "/Users/runner/work/cpython/cpython/cross-build/iOS-testbed.1779809388208/DerivedData/Build/Products/Debug-iphonesimulator/Python.framework/Python", at PyGILState_Ensure+0xf8 [0x1023eab50]
    Binary file "/Users/runner/work/cpython/cpython/cross-build/iOS-testbed.1779809388208/DerivedData/Build/Products/Debug-iphonesimulator/Python.framework/Python", at PyGILState_Ensure+0xf8 [0x1023eab50]
    Binary file "/Users/runner/work/cpython/cpython/cross-build/iOS-testbed.1779809388208/DerivedData/Build/Products/Debug-iphonesimulator/Python.framework/Python", at tracemalloc_alloc+0xa8 [0x1024097a4]
    Binary file "/Users/runner/work/cpython/cpython/cross-build/iOS-testbed.1779809388208/DerivedData/Build/Products/Debug-iphonesimulator/Python.framework/Python", at PyGILState_Ensure+0x58 [0x1023eaab0]
    Binary file "/Users/runner/work/cpython/cpython/cross-build/iOS-testbed.1779809388208/DerivedData/Build/Products/Debug-iphonesimulator/Python.framework/Python", at PyTraceMalloc_Track+0x34 [0x1024088ec]
    Binary file "/Users/runner/Library/Developer/CoreSimulator/Devices/D3F1CE55-196D-4DC8-9D1F-6D2D3AB3D118/data/Containers/Bundle/Application/130788EC-7B24-4534-8FF0-89C57EC65B80/iOSTestbed.app/Frameworks/_testcapi.framework/_testcapi", at tracemalloc_track_race_thread+0x20 [0x106f251b0]
    (...)
  
  Extension modules: _testcapi, _testinternalcapi, _testlimitedcapi, _testmultiphase, _testbuffer, _ctypes_test, xxsubtype, _testsinglephase_basic_wrapper, _testsinglephase_basic_copy, _testsinglephase_with_reinit, _testsinglephase_with_state, _test_non_isolated, _test_shared_gil_only, _test_no_multiple_interpreter_slot, _testsinglephase (total: 15)
  
  Restarting after unexpected exit, crash, or test timeout in -[TestbedTests testPython]; summary will include totals from previous launches.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with test_tracemalloc_track_race() and reproduce the crash from the linked iOS GitHub Actions job. Compare the failure with issue gh-143143 and inspect the reported PyGILState_Ensure, tracemalloc_alloc, and PyTraceMalloc_Track stack frames. Done means the race no longer crashes the iOS testbed and test_tracemalloc passes.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, ios, python
Domain
ci-cd, operating-systems, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.