Skip to content

Commit e2851da

Browse files
authored
[fix] [ml] The atomicity of multiple fields of ml is broken (apache#19346)
1 parent 8ea41f1 commit e2851da

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1554,16 +1554,16 @@ public void operationComplete(Void v, Stat stat) {
15541554
log.debug("[{}] Updating of ledgers list after create complete. version={}", name, stat);
15551555
}
15561556
ledgersStat = stat;
1557-
ledgers.put(lh.getId(), newLedger);
1558-
currentLedger = lh;
1559-
currentLedgerEntries = 0;
1560-
currentLedgerSize = 0;
1561-
metadataMutex.unlock();
1562-
updateLedgersIdsComplete();
15631557
synchronized (ManagedLedgerImpl.this) {
1558+
ledgers.put(lh.getId(), newLedger);
1559+
currentLedger = lh;
1560+
currentLedgerEntries = 0;
1561+
currentLedgerSize = 0;
1562+
updateLedgersIdsComplete();
15641563
mbean.addLedgerSwitchLatencySample(System.currentTimeMillis()
15651564
- lastLedgerCreationInitiationTimestamp, TimeUnit.MILLISECONDS);
15661565
}
1566+
metadataMutex.unlock();
15671567

15681568
// May need to update the cursor position
15691569
maybeUpdateCursorBeforeTrimmingConsumedLedger();

0 commit comments

Comments
 (0)