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

Fix test failure: dtest-upgrade.upgrade_tests.upgrade_through_versions_test.TestProtoV3Upgrade_AllVersions_RandomPartitioner_EndsAt_3_11_X_HEAD.test_rolling_upgrade

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Normal
    • Resolution: Duplicate
    • None
    • Test/dtest/python
    • None
    • All
    • None

    Description

      Failed 28 times in the last 28 runs. Flakiness: 0%, Stability: 0%
       
      Example failure: https://ci-cassandra.apache.org/job/Cassandra-trunk/801/testReport/junit/dtest-upgrade.upgrade_tests.upgrade_through_versions_test/TestProtoV3Upgrade_AllVersions_RandomPartitioner_EndsAt_3_11_X_HEAD/test_rolling_upgrade/ 

      self = <upgrade_tests.upgrade_through_versions_test.TestProtoV3Upgrade_AllVersions_RandomPartitioner_EndsAt_3_11_X_HEAD object at 0x7fb75c2087c0>
      
          @pytest.mark.timeout(3000)
          def test_rolling_upgrade(self):
              """
                  Test rolling upgrade of the cluster, so we have mixed versions part way through.
                  """
      >       self.upgrade_scenario(rolling=True)
      
      upgrade_tests/upgrade_through_versions_test.py:320: 
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      upgrade_tests/upgrade_through_versions_test.py:398: in upgrade_scenario
          self._check_on_subprocs(self.fixture_dtest_setup.subprocs)
      _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
      
      self = <upgrade_tests.upgrade_through_versions_test.TestProtoV3Upgrade_AllVersions_RandomPartitioner_EndsAt_3_11_X_HEAD object at 0x7fb75c2087c0>
      subprocs = [<Process name='Process-1' pid=19049 parent=301 stopped exitcode=-SIGKILL daemon>, <Process name='Process-2' pid=19070 parent=301 stopped exitcode=1 daemon>]
      
          def _check_on_subprocs(self, subprocs):
              """
                  Check on given subprocesses.
          
                  If any are not alive, we'll go ahead and terminate any remaining alive subprocesses since this test is going to fail.
                  """
              subproc_statuses = [s.is_alive() for s in subprocs]
              if not all(subproc_statuses):
                  message = "A subprocess has terminated early. Subprocess statuses: "
                  for s in subprocs:
                      message += "{name} (is_alive: {aliveness}), ".format(name=s.name, aliveness=s.is_alive())
                  message += "attempting to terminate remaining subprocesses now."
                  self._terminate_subprocs()
      >           raise RuntimeError(message)
      E           RuntimeError: A subprocess has terminated early. Subprocess statuses: Process-1 (is_alive: True), Process-2 (is_alive: False), attempting to terminate remaining subprocesses now.
      
      upgrade_tests/upgrade_through_versions_test.py:456: RuntimeError
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              jmckenzie Josh McKenzie
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: