From 65984a8614659ce32cab3aba0560683b1d75aa4f Mon Sep 17 00:00:00 2001 From: hanmz Date: Wed, 24 Sep 2025 13:42:57 +0800 Subject: [PATCH] Improve defer ledger lock release. --- .../org/apache/bookkeeper/replication/ReplicationWorker.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/ReplicationWorker.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/ReplicationWorker.java index 19248631bc1..48e898ff619 100644 --- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/ReplicationWorker.java +++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/replication/ReplicationWorker.java @@ -528,9 +528,11 @@ private boolean rereplicate(long ledgerIdToReplicate) throws InterruptedExceptio return false; } catch (BKNotEnoughBookiesException e) { logBKExceptionAndReleaseLedger(e, ledgerIdToReplicate); + deferLedgerLockRelease = true; throw e; } catch (BKException e) { logBKExceptionAndReleaseLedger(e, ledgerIdToReplicate); + deferLedgerLockRelease = true; return false; } finally { // we make sure we always release the underreplicated lock, unless we decided to defer it. If the lock has