This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: test_concurrent_futures: test_cancel_futures_wait_false() and test_interpreter_shutdown() failed on GHA Windows x64
Type: Stage:
Components: Tests Versions: Python 3.11
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: erlendaasland, lukasz.langa, pablogsal, vstinner
Priority: normal Keywords:

Created on 2021-08-17 16:55 by vstinner, last changed 2022-04-11 14:59 by admin.

Messages (4)
msg399768 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2021-08-17 16:55
GitHub Action Windows x64:
https://github.com/python/cpython/runs/3342514542

test_concurrent_futures failed when tests are run in parallel, but then passed then re-run in verbose mode.

======================================================================
FAIL: test_cancel_futures_wait_false (test.test_concurrent_futures.ThreadPoolShutdownTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "D:\a\cpython\cpython\lib\test\test_concurrent_futures.py", line 486, in test_cancel_futures_wait_false
    rc, out, err = assert_python_ok('-c', """if True:
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\a\cpython\cpython\lib\test\support\script_helper.py", line 160, in assert_python_ok
    return _assert_python(True, *args, **env_vars)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\a\cpython\cpython\lib\test\support\script_helper.py", line 145, in _assert_python
    res.fail(cmd_line)
    ^^^^^^^^^^^^^^^^^^
  File "D:\a\cpython\cpython\lib\test\support\script_helper.py", line 72, in fail
    raise AssertionError("Process return code is %d\n"
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: Process return code is 3221225477
command line: ['D:\\a\\cpython\\cpython\\PCbuild\\amd64\\python.exe', '-X', 'faulthandler', '-I', '-c', 'if True:\n            from concurrent.futures import ThreadPoolExecutor\n            from test.test_concurrent_futures import sleep_and_print\n            if __name__ == "__main__":\n                t = ThreadPoolExecutor()\n                t.submit(sleep_and_print, .1, "apple")\n                t.shutdown(wait=False, cancel_futures=True)\n            ']

stdout:
---
apple
---

stderr:
---

---

======================================================================
FAIL: test_interpreter_shutdown (test.test_concurrent_futures.ThreadPoolShutdownTest)
0:01:59 load avg: 5.63 [100/428/1] test_lltrace passed -- running: test_regrtest (40.5 sec)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "D:\a\cpython\cpython\lib\test\test_concurrent_futures.py", line 307, in test_interpreter_shutdown
    rc, out, err = assert_python_ok('-c', """if 1:
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\a\cpython\cpython\lib\test\support\script_helper.py", line 160, in assert_python_ok
    return _assert_python(True, *args, **env_vars)
0:01:59 load avg: 5.63 [101/428/1] test_ucn passed -- running: test_regrtest (40.5 sec)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
fetching http://www.pythontest.net/unicode/13.0.0/NamedSequences.txt ...
  File "D:\a\cpython\cpython\lib\test\support\script_helper.py", line 145, in _assert_python
    res.fail(cmd_line)
    ^^^^^^^^^^^^^^^^^^
  File "D:\a\cpython\cpython\lib\test\support\script_helper.py", line 72, in fail
    raise AssertionError("Process return code is %d\n"
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: Process return code is 3221225477
command line: ['D:\\a\\cpython\\cpython\\PCbuild\\amd64\\python.exe', '-X', 'faulthandler', '-I', '-c', 'if 1:\n            from concurrent.futures import ThreadPoolExecutor\n            from time import sleep\n            from test.test_concurrent_futures import sleep_and_print\n            if __name__ == "__main__":\n                context = \'\'\n                if context == "":\n                    t = ThreadPoolExecutor(5)\n                else:\n                    from multiprocessing import get_context\n                    context = get_context(context)\n                    t = ThreadPoolExecutor(5, mp_context=context)\n                t.submit(sleep_and_print, 1.0, "apple")\n            ']

stdout:
---
apple
---

stderr:
---

---

----------------------------------------------------------------------

Ran 226 tests in 109.440s

FAILED (failures=2, skipped=111)
test test_concurrent_futures failed
(...)
0:21:19 load avg: 0.02 Re-running test_concurrent_futures in verbose mode (matching: test_cancel_futures_wait_false, test_interpreter_shutdown)

test_interpreter_shutdown (test.test_concurrent_futures.ProcessPoolForkProcessPoolShutdownTest) ... skipped 'require unix system'
test_interpreter_shutdown (test.test_concurrent_futures.ProcessPoolForkserverProcessPoolShutdownTest) ... skipped 'require unix system'
test_interpreter_shutdown (test.test_concurrent_futures.ProcessPoolSpawnProcessPoolShutdownTest) ... 1.33s ok
test_cancel_futures_wait_false (test.test_concurrent_futures.ThreadPoolShutdownTest) ... 0.27s ok
test_interpreter_shutdown (test.test_concurrent_futures.ThreadPoolShutdownTest) ... 1.14s ok

----------------------------------------------------------------------

Ran 5 tests in 2.756s

OK (skipped=2)
msg399771 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2021-08-17 17:05
> AssertionError: Process return code is 3221225477
> (...)
> AssertionError: Process return code is 3221225477

This is STATUS_ACCESS_VIOLATION: the process crashed, not good :-(

Moreover, even if the process was run with -X faulthandler, stderr is empty :-(
msg399773 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2021-08-17 17:16
The machine was busy when test_concurrent_futures: system load of 5.59.

2021-08-16T17:14:01.3805500Z 0:01:58 load avg: 5.59 [ 93/428/1] test_concurrent_futures failed (2 failures) (1 min 49 sec) -- running: test_regrtest (39.2 sec)
msg401956 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2021-09-16 15:13
Recent failure, Windows x64 job of GitHub Action:
https://github.com/python/cpython/runs/3617689771

0:07:18 load avg: 6.20 [425/427/2] test_concurrent_futures failed (2 failures) (1 min 51 sec)
(...)
======================================================================
FAIL: test_cancel_futures_wait_false (test.test_concurrent_futures.ThreadPoolShutdownTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "D:\a\cpython\cpython\lib\test\test_concurrent_futures.py", line 488, in test_cancel_futures_wait_false
    rc, out, err = assert_python_ok('-c', """if True:
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\a\cpython\cpython\lib\test\support\script_helper.py", line 160, in assert_python_ok
    return _assert_python(True, *args, **env_vars)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\a\cpython\cpython\lib\test\support\script_helper.py", line 145, in _assert_python
    res.fail(cmd_line)
    ^^^^^^^^^^^^^^^^^^
  File "D:\a\cpython\cpython\lib\test\support\script_helper.py", line 72, in fail
    raise AssertionError("Process return code is %d\n"
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: Process return code is 3221225477
command line: ['D:\\a\\cpython\\cpython\\PCbuild\\amd64\\python.exe', '-X', 'faulthandler', '-I', '-c', 'if True:\n            from concurrent.futures import ThreadPoolExecutor\n            from test.test_concurrent_futures import sleep_and_print\n            if __name__ == "__main__":\n                t = ThreadPoolExecutor()\n                t.submit(sleep_and_print, .1, "apple")\n                t.shutdown(wait=False, cancel_futures=True)\n            ']

stdout:
---
apple
---

stderr:
---

---

======================================================================
FAIL: test_hang_issue39205 (test.test_concurrent_futures.ThreadPoolShutdownTest)
shutdown(wait=False) doesn't hang at exit with running futures.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "D:\a\cpython\cpython\lib\test\test_concurrent_futures.py", line 393, in test_hang_issue39205
    rc, out, err = assert_python_ok('-c', """if True:
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\a\cpython\cpython\lib\test\support\script_helper.py", line 160, in assert_python_ok
    return _assert_python(True, *args, **env_vars)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\a\cpython\cpython\lib\test\support\script_helper.py", line 145, in _assert_python
    res.fail(cmd_line)
    ^^^^^^^^^^^^^^^^^^
  File "D:\a\cpython\cpython\lib\test\support\script_helper.py", line 72, in fail
    raise AssertionError("Process return code is %d\n"
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: Process return code is 3221225477
command line: ['D:\\a\\cpython\\cpython\\PCbuild\\amd64\\python.exe', '-X', 'faulthandler', '-I', '-c', 'if True:\n            from concurrent.futures import ThreadPoolExecutor\n            from test.test_concurrent_futures import sleep_and_print\n            if __name__ == "__main__":\n                t = ThreadPoolExecutor(max_workers=3)\n                t.submit(sleep_and_print, 1.0, "apple")\n                t.shutdown(wait=False)\n            ']

stdout:
---
apple
---

stderr:
---

---

----------------------------------------------------------------------
Ran 226 tests in 111.014s

FAILED (failures=2, skipped=111)
test test_concurrent_futures failed
History
Date User Action Args
2022-04-11 14:59:48adminsetgithub: 89099
2021-09-16 15:13:55vstinnersetmessages: + msg401956
2021-08-17 17:16:36vstinnersetmessages: + msg399773
2021-08-17 17:05:07vstinnersetmessages: + msg399771
2021-08-17 17:02:39vstinnersetnosy: + erlendaasland
2021-08-17 16:55:02vstinnercreate