This is an automated email from the ASF dual-hosted git repository. chenhang pushed a commit to branch branch-4.14 in repository https://gitbox.apache.org/repos/asf/bookkeeper.git
commit 843cd7a7c24546e091a055de86077eb7e65d9078 Author: Hang Chen <[email protected]> AuthorDate: Mon Apr 10 09:23:27 2023 +0800 Fix keys leak in EntryLocationIndex when ledgersToDelete is empty (#3903) In EntryLocationIndex#removeOffsetFromDeletedLedgers, if there are no ledgers to delete, the key pair will leak. 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 | 8 ++++---- 1 file changed, 4 insertions(+), 4 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 f07f870b1a..453358b2eb 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 @@ -188,16 +188,16 @@ public class EntryLocationIndex implements Closeable { } public void removeOffsetFromDeletedLedgers() throws IOException { - LongPairWrapper firstKeyWrapper = LongPairWrapper.get(-1, -1); - LongPairWrapper lastKeyWrapper = LongPairWrapper.get(-1, -1); - LongPairWrapper keyToDelete = 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); + LongPairWrapper keyToDelete = LongPairWrapper.get(-1, -1); + log.info("Deleting indexes for ledgers: {}", ledgersToDelete); long startTime = System.nanoTime(); long deletedEntries = 0;
