Skip to content

test_concurrent_futures.test_deadlock fails with env changed: sys.stderr was modified on s390x RHEL8 Refleaks 3.x #109832

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

Closed
vstinner opened this issue Sep 25, 2023 · 3 comments
Labels
tests Tests in the Lib/test dir

Comments

@vstinner
Copy link
Member

vstinner commented Sep 25, 2023

s390x RHEL8 Refleaks 3.x:

Warning -- sys.stderr was modified by test.test_concurrent_futures.test_deadlock
Warning --   Before: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf-8'>
Warning --   After:  <_io.StringIO object at 0x3ff971b6410>

build: https://buildbot.python.org/all/#/builders/75/builds/895

Linked PRs

@vstinner vstinner added the tests Tests in the Lib/test dir label Sep 25, 2023
@vstinner
Copy link
Member Author

I suppose that sys.stderr was modified by test_error_at_task_unpickle() or by test_error_during_result_unpickle_in_result_handler().

I tried to reproduce the failure with:

./python -m test test_concurrent_futures.test_deadlock -m test_error_at_task_unpickle -m test_error_during_result_unpickle_in_result_handler --fail-env-changed  -R 3:3 -v --forever

I suppose that the bug only triggers if the system load is high.

@vstinner
Copy link
Member Author

I reproduced the issue after 4 min 48 sec.

Terminal 1:

$ ./python -m test test_concurrent_futures.test_deadlock -m test_error_at_task_unpickle -m test_error_during_result_unpickle_in_result_handler --fail-env-changed  -R 3:3 -v --forever 
(...)
0:04:26 load avg: 13.97 [ 14] test_concurrent_futures.test_deadlock
(...)

Warning -- sys.stderr was modified by test_concurrent_futures.test_deadlock
Warning --   Before: <_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf-8'>
Warning --   After:  <_io.StringIO object at 0x7fd38e74aea0> 

== Tests result: ENV CHANGED ==

All 13 tests OK.

1 test altered the execution environment:
    test_concurrent_futures.test_deadlock

Total duration: 4 min 48 sec
Total tests: run=84 (filtered)
Total test files: run=14 (filtered) env_changed=1
Result: ENV CHANGED

Terminal 2:

./python -m test -j10 -r

@vstinner
Copy link
Member Author

Error on GHA macOS: https://github.com/python/cpython/actions/runs/6306288599/job/17121190375?pr=109871

0:13:56 load avg: 9.33 [458/463/1] test.test_concurrent_futures.test_deadlock failed (env changed) -- running (1): test_decimal (45.1 sec)
(...)
Warning -- sys.stderr was modified by test.test_concurrent_futures.test_deadlock
Warning --   Before: <_io.StringIO object at 0x10e3d3860>
Warning --   After:  <_io.StringIO object at 0x10efe2c30>

vstinner added a commit to vstinner/cpython that referenced this issue Sep 26, 2023
vstinner added a commit to vstinner/cpython that referenced this issue Sep 26, 2023
test_error_at_task_unpickle() and
test_error_during_result_unpickle_in_result_handler() now restore
sys.stderr which is overriden by _raise_error_ignore_stderr().
vstinner added a commit to vstinner/cpython that referenced this issue Sep 26, 2023
test_error_at_task_unpickle() and
test_error_during_result_unpickle_in_result_handler() now restore
sys.stderr which is overriden by _raise_error_ignore_stderr().
vstinner added a commit that referenced this issue Sep 26, 2023
)

test_error_at_task_unpickle() and
test_error_during_result_unpickle_in_result_handler() now restore
sys.stderr which is overriden by _raise_error_ignore_stderr().
miss-islington pushed a commit to miss-islington/cpython that referenced this issue Sep 26, 2023
…pythonGH-109887)

test_error_at_task_unpickle() and
test_error_during_result_unpickle_in_result_handler() now restore
sys.stderr which is overriden by _raise_error_ignore_stderr().
(cherry picked from commit 2897142)

Co-authored-by: Victor Stinner <[email protected]>
miss-islington pushed a commit to miss-islington/cpython that referenced this issue Sep 26, 2023
…pythonGH-109887)

test_error_at_task_unpickle() and
test_error_during_result_unpickle_in_result_handler() now restore
sys.stderr which is overriden by _raise_error_ignore_stderr().
(cherry picked from commit 2897142)

Co-authored-by: Victor Stinner <[email protected]>
vstinner added a commit that referenced this issue Sep 26, 2023
GH-109887) (#109893)

gh-109832: concurrent.futures test_deadlock restores sys.stderr (GH-109887)

test_error_at_task_unpickle() and
test_error_during_result_unpickle_in_result_handler() now restore
sys.stderr which is overriden by _raise_error_ignore_stderr().
(cherry picked from commit 2897142)

Co-authored-by: Victor Stinner <[email protected]>
csm10495 pushed a commit to csm10495/cpython that referenced this issue Sep 28, 2023
…python#109887)

test_error_at_task_unpickle() and
test_error_during_result_unpickle_in_result_handler() now restore
sys.stderr which is overriden by _raise_error_ignore_stderr().
Yhg1s pushed a commit that referenced this issue Oct 2, 2023
GH-109887) (#109892)

gh-109832: concurrent.futures test_deadlock restores sys.stderr (GH-109887)

test_error_at_task_unpickle() and
test_error_during_result_unpickle_in_result_handler() now restore
sys.stderr which is overriden by _raise_error_ignore_stderr().
(cherry picked from commit 2897142)

Co-authored-by: Victor Stinner <[email protected]>
Glyphack pushed a commit to Glyphack/cpython that referenced this issue Sep 2, 2024
…python#109887)

test_error_at_task_unpickle() and
test_error_during_result_unpickle_in_result_handler() now restore
sys.stderr which is overriden by _raise_error_ignore_stderr().
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tests Tests in the Lib/test dir
Projects
None yet
Development

No branches or pull requests

1 participant