Skip to content

Commit f47db3d

Browse files
committed
Fixed LedgerHandle#ensembleChangeLoop.
1 parent 037b320 commit f47db3d

1 file changed

Lines changed: 5 additions & 2 deletions

File tree

bookkeeper-server/src/main/java/org/apache/bookkeeper/client/LedgerHandle.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1994,11 +1994,14 @@ void ensembleChangeLoop(List<BookieId> origEnsemble, Map<Integer, BookieId> fail
19941994
replaced = EnsembleUtils.diffEnsemble(origEnsemble, newEnsemble);
19951995
LOG.info("New Ensemble: {} for ledger: {}", newEnsemble, ledgerId);
19961996

1997+
// Since changingEnsemble is true, processing in #sendAddSuccessCallbacks() is skipped.
1998+
unsetSuccessAndSendWriteRequest(newEnsemble, replaced);
19971999
changingEnsemble = false;
19982000
}
19992001
}
2000-
if (newEnsemble != null) { // unsetSuccess outside of lock
2001-
unsetSuccessAndSendWriteRequest(newEnsemble, replaced);
2002+
if (newEnsemble != null) {
2003+
// After changingEnsemble is changed to false, call #sendAddSuccessCallbacks().
2004+
sendAddSuccessCallbacks();
20022005
}
20032006
}
20042007
}, clientCtx.getMainWorkerPool().chooseThread(ledgerId));

0 commit comments

Comments
 (0)