This is an automated email from the ASF dual-hosted git repository. penghui pushed a commit to branch branch-2.10 in repository https://gitbox.apache.org/repos/asf/pulsar.git
commit c2cfad82db1ee0c039c2ce1b1c42593d4aea46f9 Author: Qiang Zhao <[email protected]> AuthorDate: Thu Apr 21 14:58:01 2022 +0800 [Fix][Broker] Fix race condition in `OpAddEntry` (#15233) (cherry picked from commit b083e9a72227a3360d1ec33b5f239d82f0804e65) --- .../java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java index 453e77be0c8..0879c48de7d 100644 --- a/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java +++ b/managed-ledger/src/main/java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java @@ -3813,12 +3813,13 @@ public class ManagedLedgerImpl implements ManagedLedger, CreateCallback { } OpAddEntry opAddEntry = pendingAddEntries.peek(); if (opAddEntry != null) { + final long finalAddOpCount = opAddEntry.addOpCount; boolean isTimedOut = opAddEntry.lastInitTime != -1 && TimeUnit.NANOSECONDS.toSeconds(System.nanoTime() - opAddEntry.lastInitTime) >= timeoutSec; if (isTimedOut) { log.error("Failed to add entry for ledger {} in time-out {} sec", (opAddEntry.ledger != null ? opAddEntry.ledger.getId() : -1), timeoutSec); - opAddEntry.handleAddTimeoutFailure(opAddEntry.ledger, opAddEntry.addOpCount); + opAddEntry.handleAddTimeoutFailure(opAddEntry.ledger, finalAddOpCount); } } }
