python / cpython

The Python programming language
https://www.python.org
Other
63.07k stars 30.2k forks source link

Not able to compile python3.13.0 due to run into "double free or corruption" in test_functools.py #125228

Open xygwfxu opened 1 week ago

xygwfxu commented 1 week ago

Crash report

What happened?

Cannot wait to see new python 3.13. Thanks your great time.

But run into compile issue :( On same system (gcc 8.5.0 / Debian GLIBC 2.19) we can build python3.11 but not python3.13: First compile it compains about: `0:00:43 load avg: 11.26 [14/44] test_decimal Fatal Python error: Segmentation fault

Thread 0x0000000000000000 (most recent call first):

Thread 0x00007f79fa7fc700 (most recent call first): File "/home/myadmin/Python-3.13.0/Lib/threading.py", line 359 in wait File "/home/myadmin/Python-3.13.0/Lib/threading.py", line 659 in wait File "/home/myadmin/Python-3.13.0/Lib/test/test_decimal.py", line 1610 in thfunc1 File "/home/myadmin/Python-3.13.0/Lib/threading.py", line 992 in run File "/home/myadmin/Python-3.13.0/Lib/threading.py", line 1041 in _bootstrap_inner File "/home/myadmin/Python-3.13.0/Lib/threading.py", line 1012 in _bootstrap Current thread 0x00007f7a08c36740 (most recent call first): File "/home/myadmin/Python-3.13.0/Lib/threading.py", line 973 in start File "/home/myadmin/Python-3.13.0/Lib/test/test_decimal.py", line 1709 in test_threading File "/home/myadmin/Python-3.13.0/Lib/unittest/case.py", line 606 in _callTestMethod File "/home/myadmin/Python-3.13.0/Lib/unittest/case.py", line 651 in run File "/home/myadmin/Python-3.13.0/Lib/unittest/case.py", line 707 in __call__ File "/home/myadmin/Python-3.13.0/Lib/unittest/suite.py", line 122 in run File "/home/myadmin/Python-3.13.0/Lib/unittest/suite.py", line 84 in __call__ File "/home/myadmin/Python-3.13.0/Lib/unittest/suite.py", line 122 in run File "/home/myadmin/Python-3.13.0/Lib/unittest/suite.py", line 84 in __call__ File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/testresult.py", line 148 in run File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 57 in _run_suite File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 37 in run_unittest File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 135 in test_func File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 91 in regrtest_runner File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 138 in _load_run_test File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 181 in _runtest_env_changed_exc File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 281 in _runtest File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 310 in run_single_test File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/main.py", line 363 in run_test File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/main.py", line 397 in run_tests_sequentially File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/main.py", line 541 in _run_tests File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/main.py", line 576 in run_tests File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/main.py", line 739 in main File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/main.py", line 747 in main File "/home/myadmin/Python-3.13.0/Lib/test/__main__.py", line 2 in File "", line 88 in _run_code File "", line 198 in _run_module_as_main Extension modules: _testinternalcapi, _testcapi, _testlimitedcapi (total: 3) Makefile:892: recipe for target 'profile-run-stamp' failed make: *** [profile-run-stamp] 段错误 ` Then I add "--disable-test-modules" option to compile again(sometimes it hungs there for ever [test_lru_cache_threaded + test_lru_cache_weakrefable]): `0:01:35 load avg: 16.82 [19/44] test_functools *** Error in `./python': double free or corruption (!prev): 0x0000000002609230 *** Fatal Python error: Aborted Current thread 0x00007f2c18819740 (most recent call first): File "/home/myadmin/Python-3.13.0/Lib/threading.py", line 1092 in join File "/home/myadmin/Python-3.13.0/Lib/test/support/threading_helper.py", line 147 in start_threads File "/home/myadmin/Python-3.13.0/Lib/contextlib.py", line 148 in __exit__ File "/home/myadmin/Python-3.13.0/Lib/test/test_functools.py", line 1711 in test_lru_cache_threaded File "/home/myadmin/Python-3.13.0/Lib/unittest/case.py", line 606 in _callTestMethod File "/home/myadmin/Python-3.13.0/Lib/unittest/case.py", line 651 in run File "/home/myadmin/Python-3.13.0/Lib/unittest/case.py", line 707 in __call__ File "/home/myadmin/Python-3.13.0/Lib/unittest/suite.py", line 122 in run File "/home/myadmin/Python-3.13.0/Lib/unittest/suite.py", line 84 in __call__ File "/home/myadmin/Python-3.13.0/Lib/unittest/suite.py", line 122 in run File "/home/myadmin/Python-3.13.0/Lib/unittest/suite.py", line 84 in __call__ File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/testresult.py", line 148 in run File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 57 in _run_suite File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 37 in run_unittest File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 135 in test_func File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 91 in regrtest_runner File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 138 in _load_run_test File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 181 in _runtest_env_changed_exc File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 281 in _runtest File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 310 in run_single_test File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/main.py", line 363 in run_test File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/main.py", line 397 in run_tests_sequentially File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/main.py", line 541 in _run_tests File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/main.py", line 576 in run_tests File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/main.py", line 739 in main File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/main.py", line 747 in main File "/home/myadmin/Python-3.13.0/Lib/test/__main__.py", line 2 in File "", line 88 in _run_code File "", line 198 in _run_module_as_main Makefile:890: recipe for target 'profile-run-stamp' failed make: *** [profile-run-stamp] 已放弃` ### CPython versions tested on: 3.13 ### Operating systems tested on: Linux ### Output from running 'python -VV' on the command line: _No response_
xygwfxu commented 1 week ago

attached long time running output -- ctrl+c: `0:00:55 load avg: 6.89 [19/44] test_functools ^CThread 0x00007fa4ebfff700 (most recent call first): File "/home/myadmin/Python-3.13.0/Lib/threading.py", line 363 in wait File "/home/myadmin/Python-3.13.0/Lib/threading.py", line 659 in wait File "/home/myadmin/Python-3.13.0/Lib/test/test_functools.py", line 1696 in full File "/home/myadmin/Python-3.13.0/Lib/threading.py", line 992 in run File "/home/myadmin/Python-3.13.0/Lib/threading.py", line 1041 in _bootstrap_inner File "/home/myadmin/Python-3.13.0/Lib/threading.py", line 1012 in _bootstrap

Thread 0x00007fa4eaffd700 (most recent call first): File "/home/myadmin/Python-3.13.0/Lib/threading.py", line 363 in wait File "/home/myadmin/Python-3.13.0/Lib/threading.py", line 659 in wait File "/home/myadmin/Python-3.13.0/Lib/test/test_functools.py", line 1696 in full File "/home/myadmin/Python-3.13.0/Lib/threading.py", line 992 in run File "/home/myadmin/Python-3.13.0/Lib/threading.py", line 1041 in _bootstrap_inner File "/home/myadmin/Python-3.13.0/Lib/threading.py", line 1012 in _bootstrap

Current thread 0x00007fa4f8e5b740 (most recent call first): File "/home/myadmin/Python-3.13.0/Lib/test/support/threading_helper.py", line 158 in start_threads File "/home/myadmin/Python-3.13.0/Lib/contextlib.py", line 148 in exit File "/home/myadmin/Python-3.13.0/Lib/test/test_functools.py", line 1711 in test_lru_cache_threaded File "/home/myadmin/Python-3.13.0/Lib/unittest/case.py", line 606 in _callTestMethod File "/home/myadmin/Python-3.13.0/Lib/unittest/case.py", line 651 in run File "/home/myadmin/Python-3.13.0/Lib/unittest/case.py", line 707 in call File "/home/myadmin/Python-3.13.0/Lib/unittest/suite.py", line 122 in run File "/home/myadmin/Python-3.13.0/Lib/unittest/suite.py", line 84 in call File "/home/myadmin/Python-3.13.0/Lib/unittest/suite.py", line 122 in run File "/home/myadmin/Python-3.13.0/Lib/unittest/suite.py", line 84 in call File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/testresult.py", line 148 in run File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 57 in _run_suite File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 37 in run_unittest File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 135 in test_func File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 91 in regrtest_runner File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 138 in _load_run_test File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 181 in _runtest_env_changed_exc File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 281 in _runtest File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 310 in run_single_test File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/main.py", line 363 in run_test File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/main.py", line 397 in run_tests_sequentially File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/main.py", line 541 in _run_tests File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/main.py", line 576 in run_tests File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/main.py", line 739 in main File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/main.py", line 747 in main File "/home/myadmin/Python-3.13.0/Lib/test/main.py", line 2 in File "", line 88 in _run_code File "", line 198 in _run_module_as_main Fatal Python error: Segmentation fault

Thread 0x00007fa4ebfff700 (most recent call first): File "/home/myadmin/Python-3.13.0/Lib/threading.py", line 363 in wait File "/home/myadmin/Python-3.13.0/Lib/threading.py", line 659 in wait File "/home/myadmin/Python-3.13.0/Lib/test/test_functools.py", line 1696 in full File "/home/myadmin/Python-3.13.0/Lib/threading.py", line 992 in run File "/home/myadmin/Python-3.13.0/Lib/threading.py", line 1041 in _bootstrap_inner File "/home/myadmin/Python-3.13.0/Lib/threading.py", line 1012 in _bootstrap

Thread 0x00007fa4eaffd700 (most recent call first): File "/home/myadmin/Python-3.13.0/Lib/threading.py", line 363 in wait File "/home/myadmin/Python-3.13.0/Lib/threading.py", line 659 in wait File "/home/myadmin/Python-3.13.0/Lib/test/test_functools.py", line 1696 in full File "/home/myadmin/Python-3.13.0/Lib/threading.py", line 992 in run File "/home/myadmin/Python-3.13.0/Lib/threading.py", line 1041 in _bootstrap_inner File "/home/myadmin/Python-3.13.0/Lib/threading.py", line 1012 in _bootstrap

Current thread 0x00007fa4f8e5b740 (most recent call first): Garbage-collecting File "/home/myadmin/Python-3.13.0/Lib/test/test_functools.py", line 1899 in test_lru_cache_weakrefable File "/home/myadmin/Python-3.13.0/Lib/contextlib.py", line 85 in inner File "/home/myadmin/Python-3.13.0/Lib/unittest/case.py", line 606 in _callTestMethod File "/home/myadmin/Python-3.13.0/Lib/unittest/case.py", line 651 in run File "/home/myadmin/Python-3.13.0/Lib/unittest/case.py", line 707 in call File "/home/myadmin/Python-3.13.0/Lib/unittest/suite.py", line 122 in run File "/home/myadmin/Python-3.13.0/Lib/unittest/suite.py", line 84 in call File "/home/myadmin/Python-3.13.0/Lib/unittest/suite.py", line 122 in run File "/home/myadmin/Python-3.13.0/Lib/unittest/suite.py", line 84 in call File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/testresult.py", line 148 in run File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 57 in _run_suite File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 37 in run_unittest File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 135 in test_func File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 91 in regrtest_runner File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 138 in _load_run_test File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 181 in _runtest_env_changed_exc File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 281 in _runtest File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/single.py", line 310 in run_single_test File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/main.py", line 363 in run_test File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/main.py", line 397 in run_tests_sequentially File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/main.py", line 541 in _run_tests File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/main.py", line 576 in run_tests File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/main.py", line 739 in main File "/home/myadmin/Python-3.13.0/Lib/test/libregrtest/main.py", line 747 in main File "/home/myadmin/Python-3.13.0/Lib/test/main.py", line 2 in File "", line 88 in _run_code File "", line 198 in _run_module_as_main Makefile:890: recipe for target 'profile-run-stamp' failed make: *** [profile-run-stamp] 段错误 `

ZeroIntensity commented 1 week ago

Hi, what arguments did you use for configure?

xygwfxu commented 1 week ago

./configure -q --prefix=/usr/local/ --enable-shared --with-system-expat --with-ensurepip=install --enable-optimizations --with-computed-gotos --enable-loadable-sqlite-extensions --with-openssl=/usr/local/ --disable-test-modules

ZeroIntensity commented 1 week ago

I was able to reproduce some iffy things going on with the build on that configuration, but not the segfault. Are you compiling the 3.13 branch, or the 3.13.0 tag?

xygwfxu commented 1 week ago

The source code is downloaded from python home page(since it only has win&mac binrary). I guess it's 3.13.0 tag, right?

ZeroIntensity commented 1 week ago

cc @Eclips4, as he knows a lot more about the build than I do.

xygwfxu commented 1 week ago

Look like all tests that with requires_working_threading decorate in it will produce this error.

I guess I did not noticed this error before may due to: 555 .. versionchanged:: 3.13 556 Task failure is no longer ignored silently.

xygwfxu commented 1 week ago

FYI. Now I remove pgo option as a workaround, so it can compile now.

ZeroIntensity commented 1 week ago

But that should error, not segfault. The segfault is what has me concerned here.

xygwfxu commented 6 days ago

Yes, it's segfault. That's why it now can compile when I removed --enable-optimizations option from configure.

Zheaoli commented 4 days ago

I think this is related with #125246

xygwfxu commented 2 days ago

Yes, almost same when enabled option "enable-optimizations" (I have not try jit since there is no llvm installed in my ENV).

A little difference is that that ticket can go through all tests with some failure, here its segfault :(

ZeroIntensity commented 2 days ago

I don't think so. That issue is using both the JIT and free-threading, neither of which are used here. Maybe the issue is --disable-test-modules?