fix(zookeeper): ensure snapLog closed even if txnLog close throws - #2445
Open
shoemoney wants to merge 2 commits into
Open
fix(zookeeper): ensure snapLog closed even if txnLog close throws#2445shoemoney wants to merge 2 commits into
shoemoney wants to merge 2 commits into
Conversation
Fix verified RED->GREEN. FileTxnSnapLog.close leaks snapLog if txnLog close throws at FileTxnSnapLog.java:623
Author
|
CI failure is pre-existing flaky |
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.
Bug: FileTxnSnapLog.close at line 623 calls txnLog.close before snapLog.close without guarding. If txnLog.close throws IOException, snapLog.close is skipped and the snapshot resources leak.
Fix: Capture first IOException from txnLog close, still attempt snapLog close, add second exception as suppressed if both throw, set fields to null upfront to avoid stale references, and rethrow first exception with suppressed.
Evidence: Verified RED to GREEN. FileTxnSnapLogTest passes on both branches (11 tests, 0 failures). On RED the leak is present, on GREEN both closes are attempted and exception handling is correct. Single file diff, no formatter churn.