Skip to content

Python 3.13: test_xml_etree fails on expat 2.2.5 (RHEL8 / Rocky linux 8 / Ubuntu 22.04) #125067

Open
@JacobHenner

Description

@JacobHenner

Bug report

Bug description:

I'm attempting to build Python 3.13.0 for Rocky Linux 8, and several tests are failing:

LD_LIBRARY_PATH=/usr/src/python ./python -m test --pgo --timeout= Using random seed: 1341012311 0:00:00 load avg: 15.81 Run 44 tests sequentially in a single process 0:00:00 load avg: 15.81 [ 1/44] test_array 0:00:02 load avg: 14.70 [ 2/44] test_base64 0:00:02 load avg: 14.70 [ 3/44] test_binascii 0:00:03 load avg: 14.70 [ 4/44] test_binop 0:00:03 load avg: 14.70 [ 5/44] test_bisect 0:00:03 load avg: 14.70 [ 6/44] test_bytes 0:00:13 load avg: 12.83 [ 7/44] test_bz2 0:00:14 load avg: 12.83 [ 8/44] test_cmath 0:00:14 load avg: 12.83 [ 9/44] test_codecs 0:00:17 load avg: 12.04 [10/44] test_collections 0:00:21 load avg: 12.04 [11/44] test_complex 0:00:22 load avg: 11.32 [12/44] test_dataclasses 0:00:23 load avg: 11.32 [13/44] test_datetime 0:00:31 load avg: 10.57 [14/44] test_decimal 0:00:41 load avg: 9.25 [15/44] test_difflib 0:00:44 load avg: 8.67 [16/44] test_embed 0:01:01 load avg: 7.35 [17/44] test_float 0:01:01 load avg: 7.35 [18/44] test_fstring 0:01:06 load avg: 7.00 [19/44] test_functools 0:01:08 load avg: 6.68 [20/44] test_generators test test_generators failed 0:01:08 load avg: 6.68 [21/44] test_hashlib -- test_generators failed (1 failure) 0:01:10 load avg: 6.68 [22/44] test_heapq 0:01:11 load avg: 6.68 [23/44] test_int 0:01:14 load avg: 6.47 [24/44] test_itertools 0:01:25 load avg: 6.16 [25/44] test_json 0:01:33 load avg: 5.52 [26/44] test_long 0:01:40 load avg: 5.31 [27/44] test_lzma 0:01:41 load avg: 5.31 [28/44] test_math 0:01:49 load avg: 5.04 [29/44] test_memoryview 0:01:49 load avg: 5.04 [30/44] test_operator 0:01:50 load avg: 5.04 [31/44] test_ordered_dict 0:01:52 load avg: 5.04 [32/44] test_patma 0:01:52 load avg: 4.79 [33/44] test_pickle 0:02:07 load avg: 4.10 [34/44] test_pprint 0:02:08 load avg: 4.10 [35/44] test_re 0:02:10 load avg: 4.10 [36/44] test_set 0:02:24 load avg: 4.68 [37/44] test_sqlite3 0:02:26 load avg: 4.68 [38/44] test_statistics 0:02:45 load avg: 6.26 [39/44] test_str 0:02:50 load avg: 6.32 [40/44] test_struct 0:02:52 load avg: 6.32 [41/44] test_tabnanny 0:02:53 load avg: 6.45 [42/44] test_time 0:02:55 load avg: 6.45 [43/44] test_xml_etree test test_xml_etree failed 0:02:57 load avg: 6.45 [44/44] test_xml_etree_c -- test_xml_etree failed (3 failures) test test_xml_etree_c failed test_xml_etree_c failed (3 failures) Total duration: 2 min 59 sec Total tests: run=9,361 failures=7 skipped=204 Total test files: run=44/44 failed=3 

These tests are required to succeed in order for --enable-optimizations to work as expected.

I am using the following build options:

./configure \ --enable-loadable-sqlite-extensions \ --enable-optimizations \ --enable-shared \ --with-lto \ --with-system-expat \ --with-ensurepip \ LDFLAGS=-Wl,-rpath=/usr/local/lib 

3.9-3.12.6 do not exhibit this behavior when built with the same commands (aside from the Python version).

I'm curious whether there might be a regression for certain versions of expat, similar to #117187.

expat-devel version is expat-2.2.5-15.el8.

The specific test failures are:

====================================================================== FAIL: test_flush_reparse_deferral_disabled (test.test_xml_etree.XMLPullParserTest.test_flush_reparse_deferral_disabled) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/src/python/Lib/test/test_xml_etree.py", line 1752, in test_flush_reparse_deferral_disabled self.assert_event_tags(parser, [('start', 'doc')]) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/python/Lib/test/test_xml_etree.py", line 1483, in assert_event_tags self.assertEqual([(action, elem.tag) for action, elem in events], ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected) ^^^^^^^^^ AssertionError: Lists differ: [] != [('start', 'doc')] Second list contains 1 additional elements. First extra element 0: ('start', 'doc') - [] + [('start', 'doc')] ====================================================================== FAIL: test_simple_xml_chunk_1 (test.test_xml_etree.XMLPullParserTest.test_simple_xml_chunk_1) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/src/python/Lib/test/test_xml_etree.py", line 1508, in test_simple_xml_chunk_1 self.test_simple_xml(chunk_size=1, flush=True) ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/python/Lib/test/test_xml_etree.py", line 1496, in test_simple_xml self.assert_event_tags(parser, [('end', 'element')]) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/python/Lib/test/test_xml_etree.py", line 1483, in assert_event_tags self.assertEqual([(action, elem.tag) for action, elem in events], ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected) ^^^^^^^^^ AssertionError: Lists differ: [] != [('end', 'element')] Second list contains 1 additional elements. First extra element 0: ('end', 'element') - [] + [('end', 'element')] ====================================================================== FAIL: test_simple_xml_chunk_5 (test.test_xml_etree.XMLPullParserTest.test_simple_xml_chunk_5) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/src/python/Lib/test/test_xml_etree.py", line 1511, in test_simple_xml_chunk_5 self.test_simple_xml(chunk_size=5, flush=True) ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/python/Lib/test/test_xml_etree.py", line 1496, in test_simple_xml self.assert_event_tags(parser, [('end', 'element')]) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/src/python/Lib/test/test_xml_etree.py", line 1483, in assert_event_tags self.assertEqual([(action, elem.tag) for action, elem in events], ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected) ^^^^^^^^^ AssertionError: Lists differ: [] != [('end', 'element')] Second list contains 1 additional elements. First extra element 0: ('end', 'element') - [] + [('end', 'element')] ---------------------------------------------------------------------- Ran 198 tests in 0.423s FAILED (failures=3, skipped=6) test test_xml_etree failed test_xml_etree failed (3 failures) == Tests result: FAILURE == 1 test failed: test_xml_etree Total duration: 640 ms Total tests: run=198 failures=3 skipped=6 Total test files: run=1/1 failed=1 Result: FAILURE 

CPython versions tested on:

3.13

Operating systems tested on:

Linux

Metadata

Metadata

Assignees

No one assigned

    Labels

    3.13bugs and security fixesbuildThe build process and cross-buildtestsTests in the Lib/test dirtopic-XMLtype-bugAn unexpected behavior, bug, or error

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions