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

Add verification of state machine in StreamSession

    XMLWordPrintableJSON

Details

    • Hide

      CI: https://circleci.com/workflow-run/359562c5-5faf-49c8-aa95-2286b2d37a52, failure not related:

      j8_jvm_upgrade_dtests:  java.lang.RuntimeException: java.lang.RuntimeException: java.lang.NoSuchMethodError: org.apache.cassandra.distributed.api.IMessageFilters.permit(IILorg/apache/cassandra/distributed/api/IMessage;)Z
      

       

      dtest looks good, failures are not related:

      consistency_test.TestAccuracy.test_simple_strategy_each_quorum_counters
      cql_tracing_test.TestCqlTracing.test_tracing_unknown_impl
      read_repair_test.TestSpeculativeReadRepair.test_speculative_data_request
      cql_tracing_test.TestCqlTracing.test_tracing_does_not_interfere_with_digest_calculation
      cql_tracing_test.TestCqlTracing.test_tracing_simple
      cql_tracing_test.TestCqlTracing.test_tracing_default_impl
      cqlsh_tests.test_cqlsh_copy.TestCqlshCopy.test_writing_with_token_boundaries
      cql_tracing_test.TestCqlTracing.test_tracing_default_impl
      cql_tracing_test.TestCqlTracing.test_tracing_simple
      
      Show
      CI:  https://circleci.com/workflow-run/359562c5-5faf-49c8-aa95-2286b2d37a52 , failure not related: j8_jvm_upgrade_dtests: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.NoSuchMethodError: org.apache.cassandra.distributed.api.IMessageFilters.permit(IILorg/apache/cassandra/distributed/api/IMessage;)Z   dtest looks good, failures are not related: consistency_test.TestAccuracy.test_simple_strategy_each_quorum_counters cql_tracing_test.TestCqlTracing.test_tracing_unknown_impl read_repair_test.TestSpeculativeReadRepair.test_speculative_data_request cql_tracing_test.TestCqlTracing.test_tracing_does_not_interfere_with_digest_calculation cql_tracing_test.TestCqlTracing.test_tracing_simple cql_tracing_test.TestCqlTracing.test_tracing_default_impl cqlsh_tests.test_cqlsh_copy.TestCqlshCopy.test_writing_with_token_boundaries cql_tracing_test.TestCqlTracing.test_tracing_default_impl cql_tracing_test.TestCqlTracing.test_tracing_simple

    Description

      StreamSession contains an implicit state machine, but we have no verification of the safety of the transitions between states. For example, we have no checks to ensure we cannot leave the final states (COMPLETED, FAILED).

      I propose we add some program logic in StreamSession, tests, and documentation to ensure the correctness of the state transitions.

      Attachments

        Activity

          People

            Unassigned Unassigned
            jasobrown Jason Brown
            Votes:
            1 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated: