Skip to content

test_threading fails and crashes when rerun #108987

Closed
@serhiy-storchaka

Description

@serhiy-storchaka

Crash report

First, BarrierTests.test_default_timeout in test_threading fails, producing also several unraisable exception messages. They are produced even during running few following tests.

https://github.com/python/cpython/actions/runs/6094370280/job/16535778004#step:5:103

test_default_timeout (test.test_threading.BarrierTests.test_default_timeout)
Test the barrier's default timeout ... Warning -- Unraisable exception
Exception ignored in thread started by: <function Bunch.__init__.<locals>.task at 0x053F5270>
Traceback (most recent call last):
  File "D:\a\cpython\cpython\Lib\test\lock_tests.py", line 48, in task
    f()
  File "D:\a\cpython\cpython\Lib\test\lock_tests.py", line 1020, in f
    i = barrier.wait()
        ^^^^^^^^^^^^^^
  File "D:\a\cpython\cpython\Lib\threading.py", line 709, in wait
    self._wait(timeout)
  File "D:\a\cpython\cpython\Lib\threading.py", line 749, in _wait
    raise BrokenBarrierError
threading.BrokenBarrierError: 
ERROR
test_repr (test.test_threading.BarrierTests.test_repr) ... Warning -- Unraisable exception
Exception ignored in thread started by: <function Bunch.__init__.<locals>.task at 0x053F5270>
Traceback (most recent call last):
  File "D:\a\cpython\cpython\Lib\test\lock_tests.py", line 48, in task
    f()
  File "D:\a\cpython\cpython\Lib\test\lock_tests.py", line 1020, in f
    i = barrier.wait()
        ^^^^^^^^^^^^^^
  File "D:\a\cpython\cpython\Lib\threading.py", line 709, in wait
    self._wait(timeout)
  File "D:\a\cpython\cpython\Lib\threading.py", line 749, in _wait
    raise BrokenBarrierError
threading.BrokenBarrierError: 
Warning -- Unraisable exception
Exception ignored in thread started by: <function Bunch.__init__.<locals>.task at 0x053F5270>
Traceback (most recent call last):
  File "D:\a\cpython\cpython\Lib\test\lock_tests.py", line 48, in task
    f()
  File "D:\a\cpython\cpython\Lib\test\lock_tests.py", line 1020, in f
    i = barrier.wait()
        ^^^^^^^^^^^^^^
  File "D:\a\cpython\cpython\Lib\threading.py", line 709, in wait
    self._wait(timeout)
  File "D:\a\cpython\cpython\Lib\threading.py", line 749, in _wait
    raise BrokenBarrierError
threading.BrokenBarrierError: 
Warning -- Unraisable exception
Exception ignored in thread started by: <function Bunch.__init__.<locals>.task at 0x053F5270>
Traceback (most recent call last):
  File "D:\a\cpython\cpython\Lib\test\lock_tests.py", line 48, in task
    f()
  File "D:\a\cpython\cpython\Lib\test\lock_tests.py", line 1020, in f
    i = barrier.wait()
        ^^^^^^^^^^^^^^
  File "D:\a\cpython\cpython\Lib\threading.py", line 700, in wait
    self._enter() # Block while the barrier drains.
    ^^^^^^^^^^^^^
  File "D:\a\cpython\cpython\Lib\threading.py", line 724, in _enter
    raise BrokenBarrierError
threading.BrokenBarrierError: 
ok

After rerunning test_threading it crashes.

https://github.com/python/cpython/actions/runs/6094370280/job/16535778004#step:5:1067

0:17:28 Re-running 2 failed tests in verbose mode in subprocesses
0:17:28 Run tests in parallel using 4 child processes (timeout: 20 min, worker timeout: 25 min)
0:17:30 [1/2/1] test_threading process crashed (Exit code 3)
Re-running test_threading in verbose mode (matching: test_default_timeout)
test_default_timeout (test.test_threading.BarrierTests.test_default_timeout)
Test the barrier's default timeout ... Warning -- Unraisable exception
Exception ignored in thread started by: <function Bunch.__init__.<locals>.task at 0x052196F0>
Traceback (most recent call last):
  File "D:\a\cpython\cpython\Lib\test\lock_tests.py", line 48, in task
    f()
  File "D:\a\cpython\cpython\Lib\test\lock_tests.py", line 1020, in f
    i = barrier.wait()
        ^^^^^^^^^^^^^^
  File "D:\a\cpython\cpython\Lib\threading.py", line 709, in wait
    self._wait(timeout)
  File "D:\a\cpython\cpython\Lib\threading.py", line 749, in _wait
    raise BrokenBarrierError
threading.BrokenBarrierError: 
ERROR

======================================================================
ERROR: test_default_timeout (test.test_threading.BarrierTests.test_default_timeout)
Test the barrier's default timeout
----------------------------------------------------------------------
Traceback (most recent call last):
  File "D:\a\cpython\cpython\Lib\test\lock_tests.py", line 1025, in test_default_timeout
    self.run_threads(f)
  File "D:\a\cpython\cpython\Lib\test\lock_tests.py", line 854, in run_threads
    f()
  File "D:\a\cpython\cpython\Lib\test\lock_tests.py", line 1020, in f
    i = barrier.wait()
        ^^^^^^^^^^^^^^
  File "D:\a\cpython\cpython\Lib\threading.py", line 709, in wait
    self._wait(timeout)
  File "D:\a\cpython\cpython\Lib\threading.py", line 747, in _wait
    raise BrokenBarrierError
threading.BrokenBarrierError

----------------------------------------------------------------------
Ran 1 test in 0.376s

FAILED (errors=1)
test test_threading failed

{"test_name": "test_threading", "state": "FAILED", "duration": 0.6816820999999891, "xml_data": null, "stats": {"tests_run": 1, "failures": 0, "skipped": 0}, "errors": [["test_default_timeout (test.test_threading.BarrierTests.test_default_timeout)", "Traceback (most recent call last):\n  File \"D:\\a\\cpython\\cpython\\Lib\\test\\lock_tests.py\", line 1025, in test_default_timeout\n    self.run_threads(f)\n  File \"D:\\a\\cpython\\cpython\\Lib\\test\\lock_tests.py\", line 854, in run_threads\n    f()\n  File \"D:\\a\\cpython\\cpython\\Lib\\test\\lock_tests.py\", line 1020, in f\n    i = barrier.wait()\n        ^^^^^^^^^^^^^^\n  File \"D:\\a\\cpython\\cpython\\Lib\\threading.py\", line 709, in wait\n    self._wait(timeout)\n  File \"D:\\a\\cpython\\cpython\\Lib\\threading.py\", line 747, in _wait\n    raise BrokenBarrierError\nthreading.BrokenBarrierError\n"]], "failures": [], "__test_result__": "TestResult"}
A�s�s�e�r�t�i�o�n� �f�a�i�l�e�d�:� �t�s�t�a�t�e�_�i�s�_�a�l�i�v�e�(�t�s�t�a�t�e�)� �&�&� �!�t�s�t�a�t�e�-�>�_�s�t�a�t�u�s�.�b�o�u�n�d�,� �f�i�l�e� �D�:�\�a�\�c�p�y�t�h�o�n�\�c�p�y�t�h�o�n�\�P�y�t�h�o�n�\�p�y�s�t�a�t�e�.�c�,� �l�i�n�e� �2�4�5�
�Fatal Python error: Aborted

Thread 0x0000186c (most recent call first):
  <no Python frame>
1 test failed again:
    test_threading

Note also UTF-16 in logs, but this is other issue.

It only happened in Windows (x86) run, the run on Windows (x64) passed successfully, as well as on other platforms. It may be 32-bit Windows specific or random.

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    OS-windowstype-crashA hard crash of the interpreter, possibly with a core dump

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions