devdanzin · GitHub

Crash report

What happened?

Exposing the mutex used by the _warnings module in #128386 has made it possible to abort the interpreter by calling warnings._release_lock():

import warnings
warnings._release_lock()

Error message:

Fatal Python error: _PyRecursiveMutex_Unlock: unlocking a recursive mutex that is not owned by the current thread
Python runtime state: initialized
Current thread 0x0000718eb9295740 (most recent call first):
  File "<string>", line 1 in <module>
Aborted (core dumped)

Found using fusil by @vstinner.

CPython versions tested on:

CPython main branch, 3.14

Operating systems tested on:

Linux

Output from running 'python -VV' on the command line:

Python 3.14.0a4+ (heads/main:e1006ce1de, Feb 6 2025, 17:22:01) [GCC 13.3.0]

Linked PRs

Read the original on github.com ↗