fix(logging): avoid race condition in live logging with background threads#14564
Open
goingforstudying-ctrl wants to merge 3 commits into
Open
fix(logging): avoid race condition in live logging with background threads#14564goingforstudying-ctrl wants to merge 3 commits into
goingforstudying-ctrl wants to merge 3 commits into
Conversation
fb477cc to
1106249
Compare
Author
|
Pushed a fix for the Let me know if anything else needs adjustment. |
bf4262a to
cdbf7c5
Compare
8db3f47 to
4a676c6
Compare
Author
|
Fixed the mypy error in
Should be green now. |
8b703ef to
07df891
Compare
…reads Replace global capture suspension in _LiveLoggingStreamHandler.emit() with a temporary redirect of the TerminalWriter's output file to the original stdout. This prevents race conditions where background threads write to stdout/stderr while capture is suspended, causing lost output in capfd/capsys fixtures. Fixes pytest-dev#13693
f60be95 to
df5d575
Compare
for more information, see https://pre-commit.ci
464b0f8 to
fd26370
Compare
for more information, see https://pre-commit.ci
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.
Fixes #13693
Replace capture suspension in _LiveLoggingStreamHandler.emit() with direct writes to the original stdout stream. This prevents race conditions where background threads write to stdout/stderr while capture is suspended, causing lost output in capfd/capsys fixtures.
The previous implementation used capture_manager.global_and_fixture_disabled() which temporarily restored sys.stdout/stderr to their original values. When background threads logged during this window, their writes bypassed capture. The fix creates a temporary TerminalWriter pointing to the original stdout, allowing log messages to appear on the terminal while keeping capture active for all threads.