[ 
https://issues.apache.org/jira/browse/CASSANDRA-18378?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17707070#comment-17707070
 ] 

David Capwell commented on CASSANDRA-18378:
-------------------------------------------

Hit this in BurnTest while debugging 
https://issues.apache.org/jira/browse/CASSANDRA-18364 and think its a rather 
simple fix, so will handle there

{code}
 $ git diff
diff --git a/accord-core/src/main/java/accord/messages/Commit.java 
b/accord-core/src/main/java/accord/messages/Commit.java
index ce010ae..fc756b3 100644
--- a/accord-core/src/main/java/accord/messages/Commit.java
+++ b/accord-core/src/main/java/accord/messages/Commit.java
@@ -162,7 +162,8 @@ public class Commit extends TxnRequest<ReadNack>
             case Insufficient:
                 SafeCommand safeCommand = safeStore.command(txnId);
                 
Invariants.checkState(!safeCommand.current().known().isDefinitionKnown());
-                if (defer == null)
+                // When isDone this.process() is called and all CommandStores 
run apply again; so safe to create a new one
+                if (defer == null || defer.isDone)
                     defer = new Defer(DefinitionOnly, Committed.minKnown, 
Commit.this);
                 defer.add(safeStore, safeCommand, safeStore.commandStore());
                 return ReadNack.NotCommitted;
{code}



> CEP-15 (Accord) accord.messages.Defer rejects Recurrent retry of Commit
> -----------------------------------------------------------------------
>
>                 Key: CASSANDRA-18378
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-18378
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Accord
>            Reporter: David Capwell
>            Priority: Normal
>             Fix For: 5.x
>
>
> {code}
> java.lang.IllegalStateException: Recurrent retry of Commit{…}
>       at accord.messages.Defer.add(Defer.java:63)
>       at accord.messages.Commit.apply(Commit.java:167)
>       at accord.messages.Commit.apply(Commit.java:42)
>       at 
> org.apache.cassandra.service.accord.async.AsyncOperation$ForFunction.apply(AsyncOperation.java:321)
>       at 
> org.apache.cassandra.service.accord.async.AsyncOperation$ForFunction.apply(AsyncOperation.java:308)
>       at 
> org.apache.cassandra.service.accord.async.AsyncOperation.runInternal(AsyncOperation.java:226)
>       at 
> org.apache.cassandra.service.accord.async.AsyncOperation.run(AsyncOperation.java:268)
> {code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to