This is an automated email from the ASF dual-hosted git repository. dragonyliu pushed a commit to branch branch-2 in repository https://gitbox.apache.org/repos/asf/ratis.git
commit 6eec46186361c5339cc3940a2d07688a58f088e5 Author: Riguz Lee <[email protected]> AuthorDate: Sat Jul 23 01:24:03 2022 +0800 RATIS-1634. Close SegmentedRaftLogReader if init failed. (#693) (cherry picked from commit f773ac4f0dfe477befd86b2ef2a9606f4301996a) --- .../raftlog/segmented/SegmentedRaftLogInputStream.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/ratis-server/src/main/java/org/apache/ratis/server/raftlog/segmented/SegmentedRaftLogInputStream.java b/ratis-server/src/main/java/org/apache/ratis/server/raftlog/segmented/SegmentedRaftLogInputStream.java index c4d9e8d2..e445b1ab 100644 --- a/ratis-server/src/main/java/org/apache/ratis/server/raftlog/segmented/SegmentedRaftLogInputStream.java +++ b/ratis-server/src/main/java/org/apache/ratis/server/raftlog/segmented/SegmentedRaftLogInputStream.java @@ -90,13 +90,16 @@ public class SegmentedRaftLogInputStream implements Closeable { private void init() throws IOException { state.open(); + boolean initSuccess = false; try { - final SegmentedRaftLogReader r = new SegmentedRaftLogReader(logFile, raftLogMetrics); - if (r.verifyHeader()) { - reader = r; - } + reader = new SegmentedRaftLogReader(logFile, raftLogMetrics); + initSuccess = reader.verifyHeader(); } finally { - if (reader == null) { + if (!initSuccess) { + if(reader != null) { + reader.close(); + reader = null; + } state.close(); } }
