Fix pager test flackiness and add stress tests for echo_via_pager#3499
Open
kdeldycke wants to merge 4 commits into
Open
Fix pager test flackiness and add stress tests for echo_via_pager#3499kdeldycke wants to merge 4 commits into
echo_via_pager#3499kdeldycke wants to merge 4 commits into
Conversation
ff88e16 to
49b2378
Compare
167069a to
d4ed88f
Compare
Collaborator
Author
Just found a way to recover that original test intention in: d4ed88f |
Collaborator
Author
|
This PR is ready to be reviewed and following my comment at #2899 (comment) , will close #2899 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This fix the root cause which was worked around in #3470, and builds on top of #3139.
The thing is:
_test_gen_func_failsyieldstestthen raises. Click cannot guarantee that the bytes pushed in the pipe to the pager is delivered before the subprocess dies, as this is under the system authority. So that's why the issue was only uncovered in Python3.14t, where the scheduling management is not deterministic.We loose the "yield-then-raise" case, but that case was untestable by file content anyway.
To prevent this issue to re-occur, and to catch it early next time, I made the stress tests a bit more generic to collect all
stressPytest markers. And added a new stress test to detectecho_via_pagerleaks.Together with the b1bc8c9 / #3238 that was already pushed, this PR fully resolves #2899.