Details
-
Bug
-
Status: Resolved
-
Normal
-
Resolution: Fixed
-
Correctness - Unrecoverable Corruption / Loss
-
Critical
-
Low Hanging Fruit
-
Performance Regression Test
-
All
-
None
-
Description
This was found in benchmark clusters
java.lang.IllegalStateException: Deps do not match; expected {}, {} == [tlp_stress:[(-1182483594468561006,-472993437787424406]]]:{tlp_stress:DecoratedKey(-1000036068852656106, 3030312e302e35383730313035):[[17,1692599889087003,0,1]]}, {}
accord.utils.Invariants.illegalState(Invariants.java:44)
accord.utils.Invariants.checkState(Invariants.java:133)
accord.local.Command$Committed.<init>(Command.java:826)
accord.local.Command$Committed.<init>(Command.java:817)
accord.local.Command$Executed.<init>(Command.java:905)
accord.local.Command$Executed.executed(Command.java:951)
accord.local.Command$SerializerSupport.executed(Command.java:165)
org.apache.cassandra.service.accord.AccordKeyspace.loadCommand(AccordKeyspace.java:1197)
The root cause is that “empty” waiting_on drops the partial deps when we write/load but this becomes an issue for Command.Committed as it double checks partial_deps == waiting_on.deps