This is an automated email from the ASF dual-hosted git repository. yong pushed a commit to branch branch-4.16 in repository https://gitbox.apache.org/repos/asf/bookkeeper.git
commit 4d65b9e123f62ae3a873d189688b33ed0907228a Author: Hang Chen <[email protected]> AuthorDate: Mon Apr 10 09:23:27 2023 +0800 Fix keys leak in EntryLocationIndex when ledgersToDelete is empty (#3903) ### Motivation In EntryLocationIndex#removeOffsetFromDeletedLedgers, if there are no ledgers to delete, the key pair will leak. ### Changes Check the ledgers to deletion Set first, and if the set is not empty, then generate the keys. (cherry picked from commit ceba60565cf7cb438e9be4ab7416a2808b9168a1) --- .../apache/bookkeeper/bookie/storage/ldb/EntryLocationIndex.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/EntryLocationIndex.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/EntryLocationIndex.java index 335609aa86..a496909f67 100644 --- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/EntryLocationIndex.java +++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/EntryLocationIndex.java @@ -208,15 +208,15 @@ public class EntryLocationIndex implements Closeable { } public void removeOffsetFromDeletedLedgers() throws IOException { - LongPairWrapper firstKeyWrapper = LongPairWrapper.get(-1, -1); - LongPairWrapper lastKeyWrapper = LongPairWrapper.get(-1, -1); - Set<Long> ledgersToDelete = deletedLedgers.items(); if (ledgersToDelete.isEmpty()) { return; } + LongPairWrapper firstKeyWrapper = LongPairWrapper.get(-1, -1); + LongPairWrapper lastKeyWrapper = LongPairWrapper.get(-1, -1); + log.info("Deleting indexes for ledgers: {}", ledgersToDelete); long startTime = System.nanoTime();
