Repository navigation
[subinterpreters] crash in _elementtree when parsing in parallel #92123
Description
Activity
- addedtype-crashA hard crash of the interpreter, possibly with a core dumpA hard crash of the interpreter, possibly with a core dump
on May 1, 2022 #90619 is another Kodi crash, but the stack trace looks different.
Reacted by Erlend E. AaslandFTR, I am unable to reproduce on macOS (3.9 through 3.11), but I can reproduce on Debian 3.10 (though not on 3.11).
Also interrupting the script with Ctrl+C sometimes produces a crash:
Traceback (most recent call last): File "/home/plv/tmp/bug.py", line 27, in <module> func() File "/home/plv/tmp/bug.py", line 25, in func t.join() File "/opt/python-dbg/lib/python3.10/threading.py", line 1089, in join self._wait_for_tstate_lock() File "/opt/python-dbg/lib/python3.10/threading.py", line 1109, in _wait_for_tstate_lock if lock.acquire(block, timeout): KeyboardInterrupt Fatal Python error: PyInterpreterState_Delete: remaining subinterpreters Python runtime state: finalizing (tstate=0x0000557789f4f680) Aborted (core dumped)(gdb) bt #0 0x00007fd89ddd234c in __pthread_kill_implementation () from /usr/lib/libc.so.6 #1 0x00007fd89dd854b8 in raise () from /usr/lib/libc.so.6 #2 0x00007fd89dd6f534 in abort () from /usr/lib/libc.so.6 #3 0x00007fd89e08a5b0 in fatal_error_exit (status=-1) at Python/pylifecycle.c:2553 #4 fatal_error (fd=<optimized out>, header=header@entry=1, prefix=prefix@entry=0x7fd89e28bb70 <__func__.35.lto_priv.1> "PyInterpreterState_Delete", msg=msg@entry=0x7fd89e20d12f "remaining subinterpreters", status=status@entry=-1) at Python/pylifecycle.c:2664 #5 0x00007fd89e08a963 in _Py_FatalErrorFunc (func=0x7fd89e28bb70 <__func__.35.lto_priv.1> "PyInterpreterState_Delete", msg=0x7fd89e20d12f "remaining subinterpreters") at Python/pylifecycle.c:2750 #6 0x00007fd89e02cb3a in PyInterpreterState_Delete (interp=<optimized out>) at Python/pystate.c:407 #7 0x00007fd89e195e97 in Py_FinalizeEx () at Python/pylifecycle.c:1844 #8 0x00007fd89e180d2a in Py_RunMain () at Modules/main.c:668 #9 0x00007fd89e14477d in Py_BytesMain (argc=<optimized out>, argv=<optimized out>) at Modules/main.c:720 #10 0x00007fd89dd70310 in __libc_start_call_main () from /usr/lib/libc.so.6 #11 0x00007fd89dd703c1 in __libc_start_main_impl () from /usr/lib/libc.so.6 #12 0x0000557789e4e045 in _start ()FTR, I am unable to reproduce on macOS (3.9 through 3.11), but I can reproduce on Debian 3.10 (though not on 3.11).
Just regarding the macOS reproducibility, it appears to be flakey, but if i increase the NTHREAD to 20, it segfaults reasonably regularly (~1 in 5). I was also able to repro with NTHREAD=8, but was less consistent (~1 in 10), whilst i was unable to repro using NTHREAD=4
My repro is using Python 3.11.1 on arm64 macOS. Built from source, no patches
brent@Brents-MacBook-Pro-2 ~ % sw_vers ProductName: macOS ProductVersion: 12.6.2 BuildVersion: 21G320 brent@Brents-MacBook-Pro-2 ~ % /Users/Shared/xbmc-depends/arm-darwin21.6.0-native/bin/python3 --version Python 3.11.1 brent@Brents-MacBook-Pro-2 ~ % /Users/Shared/xbmc-depends/arm-darwin21.6.0-native/bin/python3 ~/Downloads/bug.py Fatal Python error: Segmentation fault Thread 0x0000000282013000 (most recent call first): File "/Users/brent/Downloads/bug.py", line 18 in doIt File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 975 in run File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 1038 in _bootstrap_inner File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 995 in _bootstrap Thread 0x0000000281007000 (most recent call first): File "/Users/brent/Downloads/bug.py", line 18 in doIt File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 975 in run File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 1038 in _bootstrap_inner File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 995 in _bootstrap Thread 0x000000017f49f000 (most recent call first): File "/Users/brent/Downloads/bug.py", line 18 in doIt File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 975 in run File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 1038 in _bootstrap_inner File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 995 in _bootstrap Thread 0x000000017e493000 (most recent call first): File "/Users/brent/Downloads/bug.py", line 18 in doIt File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 975 in run File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 1038 in _bootstrap_inner File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 995 in _bootstrap Thread 0x000000017d487000 (most recent call first): File "/Users/brent/Downloads/bug.py", line 18 in doIt File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 975 in run File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 1038 in _bootstrap_inner File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 995 in _bootstrap Thread 0x000000017c47b000 (most recent call first): File "/Users/brent/Downloads/bug.py", line 18 in doIt File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 975 in run File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 1038 in _bootstrap_inner File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 995 in _bootstrap Thread 0x000000017b46f000 (most recent call first): File "/Users/brent/Downloads/bug.py", line 18 in doIt File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 975 in run File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 1038 in _bootstrap_inner File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 995 in _bootstrap Thread 0x000000017a463000 (most recent call first): File "/Users/brent/Downloads/bug.py", line 18 in doIt File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 975 in run File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 1038 in _bootstrap_inner File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 995 in _bootstrap Thread 0x0000000179457000 (most recent call first): File "/Users/brent/Downloads/bug.py", line 18 in doIt File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 975 in run File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 1038 in _bootstrap_inner File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 995 in _bootstrap Thread 0x000000017844b000 (most recent call first): File "/Users/brent/Downloads/bug.py", line 18 in doIt File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 975 in run File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 1038 in _bootstrap_inner File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 995 in _bootstrap Thread 0x000000017743f000 (most recent call first): File "/Users/brent/Downloads/bug.py", line 18 in doIt File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 975 in run File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 1038 in _bootstrap_inner File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 995 in _bootstrap Thread 0x0000000176433000 (most recent call first): File "/Users/brent/Downloads/bug.py", line 18 in doIt File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 975 in run File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 1038 in _bootstrap_inner File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 995 in _bootstrap Thread 0x0000000175427000 (most recent call first): File "/Users/brent/Downloads/bug.py", line 18 in doIt File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 975 in run File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 1038 in _bootstrap_inner File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 995 in _bootstrap Current thread 0x000000017441b000 (most recent call first): File "/Users/brent/Downloads/bug.py", line 18 in doIt File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 975 in run File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 1038 in _bootstrap_inner File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 995 in _bootstrap Thread 0x000000017340f000 (most recent call first): File "/Users/brent/Downloads/bug.py", line 18 in doIt File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 975 in run File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 1038 in _bootstrap_inner File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 995 in _bootstrap Thread 0x0000000172403000 (most recent call first): File "/Users/brent/Downloads/bug.py", line 18 in doIt File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 975 in run File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 1038 in _bootstrap_inner File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 995 in _bootstrap Thread 0x00000001713f7000 (most recent call first): File "/Users/brent/Downloads/bug.py", line 18 in doIt File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 975 in run File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 1038 in _bootstrap_inner File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 995 in _bootstrap Thread 0x00000001703eb000 (most recent call first): File "/Users/brent/Downloads/bug.py", line 18 in doIt File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 975 in run File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 1038 in _bootstrap_inner File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 995 in _bootstrap Thread 0x000000016f3df000 (most recent call first): File "/Users/brent/Downloads/bug.py", line 18 in doIt File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 975 in run File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 1038 in _bootstrap_inner File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 995 in _bootstrap Thread 0x0000000103194580 (most recent call first): File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 1132 in _wait_for_tstate_lock File "/Users/Shared/xbmc-depends/arm-darwin21.6.0-native/lib/python3.11/threading.py", line 1112 in join File "/Users/brent/Downloads/bug.py", line 25 in func File "/Users/brent/Downloads/bug.py", line 27 in <module> Extension modules: _testcapi (total: 1) zsh: segmentation fault /Users/Shared/xbmc-depends/arm-darwin21.6.0-native/bin/python3Ive attached 2 x logs from crashes. Not sure if they are of any use. If there is something else i can provide, let me know and i'll try and wrangle it up.
python3.11-2023-01-02-152005.ips.txt
python3.11-2023-01-02-152001.ips.txtHeres a more complete crash generated from macos universal 3.11.1 installer.
Note, NTHREAD=20 was used- added 6 commits that reference this issue
on Jan 20, 2023 I'll give it a run this weekend
Reacted by Erlend E. AaslandLooks to be good from my testing. Cant get it to crash with the repro anymore using commit fee7a99
Reacted by Erlend E. Aasland and Kumar AdityaReacted by Erlend E. AaslandThanks, both of you!
@kumaraditya303 IMO, we can close this now, or do you want to fix the pyexpat C API first?
IMO, we can close this now, or do you want to fix the pyexpat C API first?
Yeah, lets close this now, will handle rest in specific issue.
Reacted by Erlend E. Aasland
Crash report
I have Kodi crashing when certain add-ons are enabled. I traced the error to _elementtree and repurposed a script from #90228 to reproduce the bug. See bug.py.txt
Error messages
Details
Your environment
python --with-pydebug 3.10.2Linux 5.17.1-zen1-1-zen #1 ZEN SMP PREEMPT Mon, 28 Mar 2022 21:56:46 +0000 x86_64 GNU/LinuxLinked PRs
_elementtreetypes to heap types #99221