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

Test Failure: dtest-upgrade.upgrade_tests.upgrade_through_versions_test.TestProtoV4Upgrade_AllVersions_RandomPartitioner_EndsAt_Trunk_HEAD.test_rolling_upgrade

    XMLWordPrintableJSON

Details

    Description

      2 failures in 30, looks flaky on timing / subprocess termination.

      https://ci-cassandra.apache.org/job/Cassandra-trunk/920/testReport/dtest-upgrade.upgrade_tests.upgrade_through_versions_test/TestProtoV4Upgrade_AllVersions_RandomPartitioner_EndsAt_Trunk_HEAD/test_rolling_upgrade/

      Failed 2 times in the last 30 runs. Flakiness: 10%, Stability: 93%
      Error Message
      RuntimeError: A subprocess has terminated early. Subprocess statuses: Process-1 (is_alive: True), Process-2 (is_alive: False), attempting to terminate remaining subprocesses now.
      Stacktrace
      self = <upgrade_tests.upgrade_through_versions_test.TestProtoV4Upgrade_AllVersions_RandomPartitioner_EndsAt_Trunk_HEAD object at 0x7f22685cebb0>

      @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.TestProtoV4Upgrade_AllVersions_RandomPartitioner_EndsAt_Trunk_HEAD object at 0x7f22685cebb0>
      subprocs = [<Process name='Process-1' pid=28667 parent=314 stopped exitcode=-SIGKILL daemon>, <Process name='Process-2' pid=28686 parent=314 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

              bereng Berenguer Blasi
              jmckenzie Josh McKenzie
              Berenguer Blasi
              Brandon Williams
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: