Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork33.7k
Description
Crash report
What happened?
Hi,
We're a research group focused on testing concurrent runtimes. Our work-in-progress prototype found a segmentation fault on the current nogil build when using concurrent operations on the same ordered dict. The program below shows the crash.
fromthreadingimportBarrier,ThreadimportsysfromcollectionsimportOrderedDictd=OrderedDict({"k1":"v1","k2":"v2",1:2})deft1(b1):b1.wait()try:d.move_to_end("k1")except:Nonedeft2(b1):b1.wait()d.clear()deftest():globaldbarrier=Barrier(2)threads= [Thread(target=t1,args=(barrier,)) ,Thread(target=t2,args=(barrier,)) ]d=OrderedDict({"k1":"v1","k2":"v2",1:2})fortinthreads:t.start()fortinthreads:t.join()print("Test begin...")foriinrange(0,1000):test()print("Test Done")
We ran this on our build from source configured with./configure --disable-gil.
Here's some details about the OS, compiler, binutils:Linux version 5.15.0-124-generic (buildd@lcy02-amd64-118) (gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, GNU ld (GNU Binutils for Ubuntu) 2.38) #134-Ubuntu SMP Fri Sep 27 20:20:17 UTC 2024
@flypoodles and@overlorde are part of the team, adding them so they get notified about further discussion.
We're happy to provide more details about the crash.
CPython versions tested on:
3.13, 3.14, CPython main branch
Operating systems tested on:
Linux
Output from running 'python -VV' on the command line:
Python 3.14.0a1+ experimental free-threading build (heads/main:c5b99f5c2c5, Oct 25 2024, 17:31:30) [GCC 11.4.0]