You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by ch...@apache.org on 2021/11/04 11:18:55 UTC
[pulsar] 07/14: [ML] Add OpAddEntry to pendingAddEntries after the
state check (#12570)
This is an automated email from the ASF dual-hosted git repository.
chenhang pushed a commit to branch branch-2.8
in repository https://gitbox.apache.org/repos/asf/pulsar.git
commit aca2a7ba4e663ccdc3cfdb75262da4ed8bc00ee8
Author: Lari Hotari <lh...@users.noreply.github.com>
AuthorDate: Tue Nov 2 06:00:33 2021 +0200
[ML] Add OpAddEntry to pendingAddEntries after the state check (#12570)
- when the state was Fenced, Terminated or Closed, the OpAddEntry
instance would remain in pendingAddEntries although the operation is failed
immediately.
(cherry picked from commit 409239ce27d7d5f9800c5d09e0455ad4c5c0871c)
---
.../java/org/apache/bookkeeper/mledger/impl/ManagedLedgerImpl.java | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
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 52cae3e..126acdb 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
@@ -721,7 +721,6 @@ public class ManagedLedgerImpl implements ManagedLedger, CreateCallback {
if (!beforeAddEntry(addOperation)) {
return;
}
- pendingAddEntries.add(addOperation);
final State state = STATE_UPDATER.get(this);
if (state == State.Fenced) {
addOperation.failed(new ManagedLedgerFencedException());
@@ -733,10 +732,10 @@ public class ManagedLedgerImpl implements ManagedLedger, CreateCallback {
addOperation.failed(new ManagedLedgerAlreadyClosedException("Managed ledger was already closed"));
return;
} else if (state == State.WriteFailed) {
- pendingAddEntries.remove(addOperation);
addOperation.failed(new ManagedLedgerAlreadyClosedException("Waiting to recover from failure"));
return;
}
+ pendingAddEntries.add(addOperation);
if (state == State.ClosingLedger || state == State.CreatingLedger) {
// We don't have a ready ledger to write into