Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-18783

CEP-15 (C*): when loading commands that have empty waiting_on, make sure not to loose the partial deps

    XMLWordPrintableJSON

Details

    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

      Attachments

        Activity

          People

            dcapwell David Capwell
            dcapwell David Capwell
            David Capwell
            Aleksey Yeschenko
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: