Repository navigation
AMD64 Windows11 Bigmem 3.x: test_bigmem failed with !_Py_IsImmortal(FROM_GC(gc)) assertion error #115124
Copy link
Copy link
Closed as not planned
Closed as not planned
Copy link
Description
build: https://buildbot.python.org/all/#/builders/1079/builds/3327
Error after tests complete, when running gc_collect() C function:
Assertion failed: !_Py_IsImmortal(FROM_GC(gc)), file R:\buildarea\3.x.ambv-bb-win11.bigmem\build\Python\gc.c, line 476
Logs:
R:\buildarea\3.x.ambv-bb-win11.bigmem\build>"R:\buildarea\3.x.ambv-bb-win11.bigmem\build\PCbuild\amd64\python_d.exe" -m test --fast-ci --slow-ci -M24g -uall --junit-xml test-results.xml -j4 --timeout 4800
+ 'R:\buildarea\3.x.ambv-bb-win11.bigmem\build\PCbuild\amd64\python_d.exe' -u -W default -bb -E -m test --fast-ci --slow-ci -M24g -uall --junit-xml test-results.xml -j4 --timeout 4800 --dont-add-python-opts
== CPython 3.13.0a3+ (heads/main:bcccf1fb63, Feb 5 2024, 19:52:36) [MSC v.1936 64 bit (AMD64)]
== Windows-11-10.0.22631-SP0 little-endian
== Python build: debug
== cwd: R:\buildarea\3.x.ambv-bb-win11.bigmem\build\build\test_python_worker_3608�
== CPU count: 6
== encodings: locale=cp1252 FS=utf-8
== resources: all
(...)
1:43:02 load avg: 0.04 [2/2/2] test_bigmem worker non-zero exit code (Exit code 3)
Re-running test_bigmem in verbose mode
test_capitalize (test.test_bigmem.BytearrayTest.test_capitalize) ... ok
test_center (test.test_bigmem.BytearrayTest.test_center) ... ok
test_compare (test.test_bigmem.BytearrayTest.test_compare) ... ok
test_concat (test.test_bigmem.BytearrayTest.test_concat) ... ok
test_contains (test.test_bigmem.BytearrayTest.test_contains) ... ok
test_count (test.test_bigmem.BytearrayTest.test_count) ... ok
test_decode (test.test_bigmem.BytearrayTest.test_decode) ... ok
test_endswith (test.test_bigmem.BytearrayTest.test_endswith) ... ok
test_expandtabs (test.test_bigmem.BytearrayTest.test_expandtabs) ... ok
test_find (test.test_bigmem.BytearrayTest.test_find) ... ok
test_index (test.test_bigmem.BytearrayTest.test_index) ... ok
test_isalnum (test.test_bigmem.BytearrayTest.test_isalnum) ... ok
test_isalpha (test.test_bigmem.BytearrayTest.test_isalpha) ... ok
test_isdigit (test.test_bigmem.BytearrayTest.test_isdigit) ... ok
test_islower (test.test_bigmem.BytearrayTest.test_islower) ... ok
test_isspace (test.test_bigmem.BytearrayTest.test_isspace) ... ok
test_istitle (test.test_bigmem.BytearrayTest.test_istitle) ... ok
test_isupper (test.test_bigmem.BytearrayTest.test_isupper) ... ok
test_join (test.test_bigmem.BytearrayTest.test_join) ... ok
test_ljust (test.test_bigmem.BytearrayTest.test_ljust) ... ok
test_lower (test.test_bigmem.BytearrayTest.test_lower) ... ok
test_lstrip (test.test_bigmem.BytearrayTest.test_lstrip) ... ok
test_repeat (test.test_bigmem.BytearrayTest.test_repeat) ... ok
test_replace (test.test_bigmem.BytearrayTest.test_replace) ... ok
test_rfind (test.test_bigmem.BytearrayTest.test_rfind) ... ok
test_rindex (test.test_bigmem.BytearrayTest.test_rindex) ... ok
test_rjust (test.test_bigmem.BytearrayTest.test_rjust) ... ok
test_rstrip (test.test_bigmem.BytearrayTest.test_rstrip) ... ok
test_slice_and_getitem (test.test_bigmem.BytearrayTest.test_slice_and_getitem) ... ok
test_split_small (test.test_bigmem.BytearrayTest.test_split_small) ... ok
test_splitlines (test.test_bigmem.BytearrayTest.test_splitlines) ... ok
test_startswith (test.test_bigmem.BytearrayTest.test_startswith) ... ok
test_strip (test.test_bigmem.BytearrayTest.test_strip) ... ok
test_swapcase (test.test_bigmem.BytearrayTest.test_swapcase) ... ok
test_title (test.test_bigmem.BytearrayTest.test_title) ... ok
test_translate (test.test_bigmem.BytearrayTest.test_translate) ... ok
test_upper (test.test_bigmem.BytearrayTest.test_upper) ... ok
test_zfill (test.test_bigmem.BytearrayTest.test_zfill) ... ok
test_capitalize (test.test_bigmem.BytesTest.test_capitalize) ... ok
test_center (test.test_bigmem.BytesTest.test_center) ... ok
test_compare (test.test_bigmem.BytesTest.test_compare) ... ok
test_concat (test.test_bigmem.BytesTest.test_concat) ... ok
test_contains (test.test_bigmem.BytesTest.test_contains) ... ok
test_count (test.test_bigmem.BytesTest.test_count) ... ok
test_decode (test.test_bigmem.BytesTest.test_decode) ... ok
test_endswith (test.test_bigmem.BytesTest.test_endswith) ... ok
test_expandtabs (test.test_bigmem.BytesTest.test_expandtabs) ... ok
test_find (test.test_bigmem.BytesTest.test_find) ... ok
test_hash (test.test_bigmem.BytesTest.test_hash) ... ok
test_index (test.test_bigmem.BytesTest.test_index) ... ok
test_isalnum (test.test_bigmem.BytesTest.test_isalnum) ... ok
test_isalpha (test.test_bigmem.BytesTest.test_isalpha) ... ok
test_isdigit (test.test_bigmem.BytesTest.test_isdigit) ... ok
test_islower (test.test_bigmem.BytesTest.test_islower) ... ok
test_isspace (test.test_bigmem.BytesTest.test_isspace) ... ok
test_istitle (test.test_bigmem.BytesTest.test_istitle) ... ok
test_isupper (test.test_bigmem.BytesTest.test_isupper) ... ok
test_join (test.test_bigmem.BytesTest.test_join) ... ok
test_ljust (test.test_bigmem.BytesTest.test_ljust) ... ok
test_lower (test.test_bigmem.BytesTest.test_lower) ... ok
test_lstrip (test.test_bigmem.BytesTest.test_lstrip) ... ok
test_repeat (test.test_bigmem.BytesTest.test_repeat) ... ok
test_replace (test.test_bigmem.BytesTest.test_replace) ... ok
test_rfind (test.test_bigmem.BytesTest.test_rfind) ... ok
test_rindex (test.test_bigmem.BytesTest.test_rindex) ... ok
test_rjust (test.test_bigmem.BytesTest.test_rjust) ... ok
test_rstrip (test.test_bigmem.BytesTest.test_rstrip) ... ok
test_slice_and_getitem (test.test_bigmem.BytesTest.test_slice_and_getitem) ... ok
test_split_large (test.test_bigmem.BytesTest.test_split_large) ... ok
test_split_small (test.test_bigmem.BytesTest.test_split_small) ... ok
test_splitlines (test.test_bigmem.BytesTest.test_splitlines) ... ok
test_startswith (test.test_bigmem.BytesTest.test_startswith) ... ok
test_strip (test.test_bigmem.BytesTest.test_strip) ... ok
test_swapcase (test.test_bigmem.BytesTest.test_swapcase) ... ok
test_title (test.test_bigmem.BytesTest.test_title) ... ok
test_translate (test.test_bigmem.BytesTest.test_translate) ... ok
test_upper (test.test_bigmem.BytesTest.test_upper) ... ok
test_zfill (test.test_bigmem.BytesTest.test_zfill) ... ok
test_dict (test.test_bigmem.DictTest.test_dict) ... skipped 'not enough memory: 53.3G minimum needed'
test_append (test.test_bigmem.ListTest.test_append) ... ok
test_compare (test.test_bigmem.ListTest.test_compare) ... skipped 'not enough memory: 32.0G minimum needed'
test_concat_large (test.test_bigmem.ListTest.test_concat_large) ... skipped 'not enough memory: 48.0G minimum needed'
test_concat_small (test.test_bigmem.ListTest.test_concat_small) ... skipped 'not enough memory: 24.0G minimum needed'
test_contains (test.test_bigmem.ListTest.test_contains) ... ok
test_count (test.test_bigmem.ListTest.test_count) ... ok
test_extend_large (test.test_bigmem.ListTest.test_extend_large) ... skipped 'not enough memory: 36.0G minimum needed'
test_extend_small (test.test_bigmem.ListTest.test_extend_small) ... ok
test_hash (test.test_bigmem.ListTest.test_hash) ... ok
test_index (test.test_bigmem.ListTest.test_index) ... ok
test_index_and_slice (test.test_bigmem.ListTest.test_index_and_slice) ... ok
test_inplace_concat_large (test.test_bigmem.ListTest.test_inplace_concat_large) ... skipped 'not enough memory: 36.0G minimum needed'
test_inplace_concat_small (test.test_bigmem.ListTest.test_inplace_concat_small) ... ok
test_inplace_repeat_large (test.test_bigmem.ListTest.test_inplace_repeat_large) ... skipped 'not enough memory: 36.0G minimum needed'
test_inplace_repeat_small (test.test_bigmem.ListTest.test_inplace_repeat_small) ... ok
test_insert (test.test_bigmem.ListTest.test_insert) ... ok
test_pop (test.test_bigmem.ListTest.test_pop) ... ok
test_remove (test.test_bigmem.ListTest.test_remove) ... ok
test_repeat_large (test.test_bigmem.ListTest.test_repeat_large) ... skipped 'not enough memory: 48.0G minimum needed'
test_repeat_small (test.test_bigmem.ListTest.test_repeat_small) ... skipped 'not enough memory: 24.0G minimum needed'
test_repr_large (test.test_bigmem.ListTest.test_repr_large) ... skipped 'not enough memory: 30.0G minimum needed'
test_repr_small (test.test_bigmem.ListTest.test_repr_small) ... ok
test_reverse (test.test_bigmem.ListTest.test_reverse) ... ok
test_sort (test.test_bigmem.ListTest.test_sort) ... skipped 'not enough memory: 24.0G minimum needed'
test_capitalize (test.test_bigmem.StrTest.test_capitalize) ... skipped 'not enough memory: 28.0G minimum needed'
test_center (test.test_bigmem.StrTest.test_center) ... ok
test_compare (test.test_bigmem.StrTest.test_compare) ... ok
test_concat (test.test_bigmem.StrTest.test_concat) ... ok
test_contains (test.test_bigmem.StrTest.test_contains) ... ok
test_count (test.test_bigmem.StrTest.test_count) ... ok
test_encode (test.test_bigmem.StrTest.test_encode) ... ok
test_encode_ascii (test.test_bigmem.StrTest.test_encode_ascii) ... ok
test_encode_raw_unicode_escape (test.test_bigmem.StrTest.test_encode_raw_unicode_escape) ... ok
test_encode_utf32 (test.test_bigmem.StrTest.test_encode_utf32) ... ok
test_encode_utf7 (test.test_bigmem.StrTest.test_encode_utf7) ... ok
test_endswith (test.test_bigmem.StrTest.test_endswith) ... ok
test_expandtabs (test.test_bigmem.StrTest.test_expandtabs) ... ok
test_find (test.test_bigmem.StrTest.test_find) ... ok
test_format (test.test_bigmem.StrTest.test_format) ... ok
test_hash (test.test_bigmem.StrTest.test_hash) ... ok
test_index (test.test_bigmem.StrTest.test_index) ... ok
test_isalnum (test.test_bigmem.StrTest.test_isalnum) ... ok
test_isalpha (test.test_bigmem.StrTest.test_isalpha) ... ok
test_isdigit (test.test_bigmem.StrTest.test_isdigit) ... ok
test_islower (test.test_bigmem.StrTest.test_islower) ... ok
test_isspace (test.test_bigmem.StrTest.test_isspace) ... ok
test_istitle (test.test_bigmem.StrTest.test_istitle) ... ok
test_isupper (test.test_bigmem.StrTest.test_isupper) ... ok
test_join (test.test_bigmem.StrTest.test_join) ... ok
test_ljust (test.test_bigmem.StrTest.test_ljust) ... ok
test_lower (test.test_bigmem.StrTest.test_lower) ... ok
test_lstrip (test.test_bigmem.StrTest.test_lstrip) ... ok
test_repeat (test.test_bigmem.StrTest.test_repeat) ... ok
test_replace (test.test_bigmem.StrTest.test_replace) ... ok
test_repr_large (test.test_bigmem.StrTest.test_repr_large) ... ok
test_repr_small (test.test_bigmem.StrTest.test_repr_small) ... ok
test_rfind (test.test_bigmem.StrTest.test_rfind) ... ok
test_rindex (test.test_bigmem.StrTest.test_rindex) ... ok
test_rjust (test.test_bigmem.StrTest.test_rjust) ... ok
test_rstrip (test.test_bigmem.StrTest.test_rstrip) ... ok
test_slice_and_getitem (test.test_bigmem.StrTest.test_slice_and_getitem) ... ok
test_split_large (test.test_bigmem.StrTest.test_split_large) ... ok
test_split_small (test.test_bigmem.StrTest.test_split_small) ... ok
test_splitlines (test.test_bigmem.StrTest.test_splitlines) ... ok
test_startswith (test.test_bigmem.StrTest.test_startswith) ... ok
test_strip (test.test_bigmem.StrTest.test_strip) ... ok
test_swapcase (test.test_bigmem.StrTest.test_swapcase) ... skipped 'not enough memory: 28.0G minimum needed'
test_title (test.test_bigmem.StrTest.test_title) ... skipped 'not enough memory: 28.0G minimum needed'
test_translate (test.test_bigmem.StrTest.test_translate) ... ok
test_unicode_repr (test.test_bigmem.StrTest.test_unicode_repr) ... ok
test_unicode_repr_wide (test.test_bigmem.StrTest.test_unicode_repr_wide) ... ok
test_upper (test.test_bigmem.StrTest.test_upper) ... ok
test_zfill (test.test_bigmem.StrTest.test_zfill) ... ok
test_compare (test.test_bigmem.TupleTest.test_compare) ... skipped 'not enough memory: 32.0G minimum needed'
test_concat_large (test.test_bigmem.TupleTest.test_concat_large) ... skipped 'not enough memory: 48.0G minimum needed'
test_concat_small (test.test_bigmem.TupleTest.test_concat_small) ... skipped 'not enough memory: 24.0G minimum needed'
test_contains (test.test_bigmem.TupleTest.test_contains) ... ok
test_from_2G_generator (test.test_bigmem.TupleTest.test_from_2G_generator) ... ok
test_from_almost_2G_generator (test.test_bigmem.TupleTest.test_from_almost_2G_generator) ... ok
test_hash (test.test_bigmem.TupleTest.test_hash) ... ok
test_index_and_slice (test.test_bigmem.TupleTest.test_index_and_slice) ... ok
test_repeat_large (test.test_bigmem.TupleTest.test_repeat_large) ... skipped 'not enough memory: 48.0G minimum needed'
test_repeat_large_2 (test.test_bigmem.TupleTest.test_repeat_large_2) ... ok
test_repeat_small (test.test_bigmem.TupleTest.test_repeat_small) ... skipped 'not enough memory: 24.0G minimum needed'
test_repr_large (test.test_bigmem.TupleTest.test_repr_large) ... skipped 'not enough memory: 30.0G minimum needed'
test_repr_small (test.test_bigmem.TupleTest.test_repr_small) ... ok
----------------------------------------------------------------------
Ran 165 tests in 2954.633s
OK (skipped=20)
Assertion failed: !_Py_IsImmortal(FROM_GC(gc)), file R:\buildarea\3.x.ambv-bb-win11.bigmem\build\Python\gc.c, line 476
Fatal Python error: Aborted
Current thread 0x00000c1c (most recent call first):
Garbage-collecting
File "R:\buildarea\3.x.ambv-bb-win11.bigmem\build\Lib\test\support\__init__.py", line 776 in gc_collect
File "R:\buildarea\3.x.ambv-bb-win11.bigmem\build\Lib\test\libregrtest\single.py", line 141 in _load_run_test
File "R:\buildarea\3.x.ambv-bb-win11.bigmem\build\Lib\test\libregrtest\single.py", line 178 in _runtest_env_changed_exc
File "R:\buildarea\3.x.ambv-bb-win11.bigmem\build\Lib\test\libregrtest\single.py", line 278 in _runtest
File "R:\buildarea\3.x.ambv-bb-win11.bigmem\build\Lib\test\libregrtest\single.py", line 306 in run_single_test
File "R:\buildarea\3.x.ambv-bb-win11.bigmem\build\Lib\test\libregrtest\worker.py", line 91 in worker_process
File "R:\buildarea\3.x.ambv-bb-win11.bigmem\build\Lib\test\libregrtest\worker.py", line 126 in main
File "R:\buildarea\3.x.ambv-bb-win11.bigmem\build\Lib\test\libregrtest\worker.py", line 130 in <module>
File "R:\buildarea\3.x.ambv-bb-win11.bigmem\build\Lib\runpy.py", line 88 in _run_code
File "R:\buildarea\3.x.ambv-bb-win11.bigmem\build\Lib\runpy.py", line 198 in _run_module_as_main
Extension modules: _testcapi, _wmi (total: 2)
(...)
2 tests failed:
test.test_multiprocessing_spawn.test_processes test_bigmem
426 tests OK.
EDIT: I created issue gh-115127 for the test_multiprocessing_spawn error.
Linked PRs
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity
pythongh-115124: Use _PyObject_ASSERT() in gc.c
pythongh-115124: Use _PyObject_ASSERT() in gc.c
vstinner commentedon Feb 7, 2024
See also issue gh-115122: "regrtest: add --bisect option to run test.bisect_cmd on failed tests".
vstinner commentedon Feb 7, 2024
@ambv message on Discord:
Note: the bigmem buildbot caught an assertion failure in GC
Started with https://buildbot.python.org/all/#/builders/1079/builds/3327
Latest failure: https://buildbot.python.org/all/#/builders/1079/builds/3333
I'll be disabling bigmem on 3.12 as at this point it's unlikely to catch anything new in 3.12. So we'll have less waiting for the buildbot on main.
vstinner commentedon Feb 7, 2024
This build contains two changes:
vstinner commentedon Feb 7, 2024
See also issue gh-115127: multiprocessing test_thread_safety() fails with "gc_list_is_empty(to) || gc_old_space(to_tail) == gc_old_space(from_tail)" assert error.
encukou commentedon Feb 7, 2024
This was #108362
pythongh-115124: Use _PyObject_ASSERT() in gc.c
pythongh-115124: Use _PyObject_ASSERT() in gc.c
pythongh-115124: Use _PyObject_ASSERT() in gc.c
pythongh-115124: Use _PyObject_ASSERT() in gc.c
gh-115124: Use _PyObject_ASSERT() in gc.c (#115125)
pythongh-115124: Use _PyObject_ASSERT() in gc.c (python#115125)
pythongh-115124: Use _PyObject_ASSERT() in gc.c (python#115125)