gh-143689: Fix BufferedReader.read1 leaving object in reentrant state on error#143690
Merged
vstinner merged 9 commits intopython:mainfrom Jan 19, 2026
Merged
gh-143689: Fix BufferedReader.read1 leaving object in reentrant state on error#143690vstinner merged 9 commits intopython:mainfrom
vstinner merged 9 commits intopython:mainfrom
Conversation
BufferedReader.read1() could leave the buffered object in a reentrant (locked) state when an exception was raised while allocating the output buffer. This change ensures the internal buffered lock is always released on error, keeping the object in a consistent state after failures. Signed-off-by: Yongtao Huang <yongtaoh2022@gmail.com>
cmaloney
reviewed
Jan 11, 2026
Contributor
cmaloney
left a comment
There was a problem hiding this comment.
Thanks for the patch! The fix looks correct. The NEWs entry and test don't quite match the preferred patterns in CPython, left some comments.
Misc/NEWS.d/next/Library/2026-01-11-14-14-19.gh-issue-143689.fzHJ2W.rst
Outdated
Show resolved
Hide resolved
…zHJ2W.rst Co-authored-by: Cody Maloney <cmaloney@users.noreply.github.com>
Contributor
Author
Thanks for the review and feedback — I’ve made the requested changes. |
sobolevn
reviewed
Jan 11, 2026
Co-authored-by: sobolevn <mail@sobolevn.me>
f305804 to
e36ddf6
Compare
Contributor
|
Please don't force-push to CPython PR branches: https://devguide.python.org/getting-started/pull-request-lifecycle/#don-t-force-push |
cmaloney
approved these changes
Jan 12, 2026
Contributor
Author
Sorry — I only realized afterward that using git revert to undo the previous commit would have been the better choice. |
Contributor
|
and I missed it in review but should have caught it :) |
Member
|
Merged, thanks for the fix and the test. |
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.
BufferedReader.read1() could leave the buffered object in a
reentrant (locked) state when an exception was raised while
allocating the output buffer.
This change ensures the internal buffered lock is always released
on error, keeping the object in a consistent state after failures.