Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test_concurrent_futures: test_cancel_futures_wait_false() and test_interpreter_shutdown() failed on GHA Windows x64 #89099

Closed
vstinner opened this issue Aug 17, 2021 · 5 comments
Labels
3.11 only security fixes tests Tests in the Lib/test dir topic-multiprocessing

Comments

@vstinner
Copy link
Member

BPO 44936
Nosy @vstinner, @ambv, @pablogsal, @erlend-aasland

Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

Show more details

GitHub fields:

assignee = None
closed_at = None
created_at = <Date 2021-08-17.16:55:02.512>
labels = ['tests', '3.11']
title = 'test_concurrent_futures: test_cancel_futures_wait_false() and test_interpreter_shutdown() failed on GHA Windows x64'
updated_at = <Date 2021-09-16.15:13:55.293>
user = 'https://github.com/vstinner'

bugs.python.org fields:

activity = <Date 2021-09-16.15:13:55.293>
actor = 'vstinner'
assignee = 'none'
closed = False
closed_date = None
closer = None
components = ['Tests']
creation = <Date 2021-08-17.16:55:02.512>
creator = 'vstinner'
dependencies = []
files = []
hgrepos = []
issue_num = 44936
keywords = []
message_count = 4.0
messages = ['399768', '399771', '399773', '401956']
nosy_count = 4.0
nosy_names = ['vstinner', 'lukasz.langa', 'pablogsal', 'erlendaasland']
pr_nums = []
priority = 'normal'
resolution = None
stage = None
status = 'open'
superseder = None
type = None
url = 'https://bugs.python.org/issue44936'
versions = ['Python 3.11']

@vstinner
Copy link
Member Author

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)

@vstinner vstinner added 3.11 only security fixes tests Tests in the Lib/test dir labels Aug 17, 2021
@vstinner
Copy link
Member Author

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 :-(

@vstinner
Copy link
Member Author

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)

@vstinner
Copy link
Member Author

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

@ezio-melotti ezio-melotti transferred this issue from another repository Apr 10, 2022
@kumaraditya303
Copy link
Contributor

Closing as it is outdated and the CI is green.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
3.11 only security fixes tests Tests in the Lib/test dir topic-multiprocessing
Projects
None yet
Development

No branches or pull requests

2 participants