Crash report
What happened?
It's possible to abort the interpreter by calling multiprocessing.shared_memory.ShareableList.count in threads with PYTHON_GIL=0 in a debug build:
import gc
import multiprocessing .shared_memory
from threading import Thread
obj = multiprocessing .shared_memory .ShareableList ("Uq..SeDAmB+EBrkLl.SG.Z+Z.ZdsV..wT+zLxKwdN\b " )
for x in range (10 ):
Thread (target = obj .count , args = (1 ,)).start ()
del obj
gc .collect ()
Result:
Exception ignored in : < function SharedMemory .__del__ at 0x200006bbfb0 >
Traceback (most recent call last ):
File "/home/danzin/projects/mycpython/Lib/multiprocessing/shared_memory.py" , line 189 , in __del__
self .close ()
File "/home/danzin/projects/mycpython/Lib/multiprocessing/shared_memory.py" , line 229 , in close
self ._buf .release ()
BufferError : memoryview has 2 exported buffers
python : Objects / memoryobject .c :1143 : memory_dealloc : Assertion `self -> exports == 0 ' failed .
Aborted
Found using fusil by @vstinner .
CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux
Output from running 'python -VV' on the command line:
Python 3.14.0a2+ experimental free-threading build (heads/main-dirty:c9b399fbdb0, Nov 19 2024, 20:12:48) [GCC 11.4.0]
Linked PRs
Reactions are currently unavailable
Crash report
What happened?
It's possible to abort the interpreter by calling
multiprocessing.shared_memory.ShareableList.countin threads withPYTHON_GIL=0in a debug build:Result:
Found using fusil by @vstinner.
CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux
Output from running 'python -VV' on the command line:
Python 3.14.0a2+ experimental free-threading build (heads/main-dirty:c9b399fbdb0, Nov 19 2024, 20:12:48) [GCC 11.4.0]
Linked PRs
memoryview->exportsrace condition. #127412