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

Version family is probably broken for Cassandra 2 and 3.11 in dtests

    XMLWordPrintableJSON

Details

    Description

      It looks like the version families are a bit confused - when we determine version family for the current build, we do:

          if current_version.vstring.startswith('2.0'):
              version_family = '2.0.x'
          elif current_version.vstring.startswith('2.1'):
              version_family = '2.1.x'
          elif current_version.vstring.startswith('2.2'):
              version_family = '2.2.x'
          elif current_version.vstring.startswith('3.0'):
              version_family = '3.0.x'
          elif '3.1' <= current_version < '4.0':
              version_family = '3.x'
          elif '4.0' <= current_version < '4.1':
              version_family = 'trunk'
          else:
              # when this occurs, it's time to update this manifest a bit!
              raise RuntimeError("4.1+ not yet supported on upgrade tests!")
      

      but later, in the upgrade manifest we have:

      indev_2_1_x = VersionMeta(name='indev_2_1_x', family='2.1', variant='indev', version='github:apache/cassandra-2.1', min_proto_v=1, max_proto_v=3, java_versions=(7, 8))
      current_2_1_x = VersionMeta(name='current_2_1_x', family='2.1', variant='current', version='2.1.20', min_proto_v=1, max_proto_v=3, java_versions=(7, 8))
      
      indev_2_2_x = VersionMeta(name='indev_2_2_x', family='2.2', variant='indev', version='github:apache/cassandra-2.2', min_proto_v=1, max_proto_v=4, java_versions=(7, 8))
      current_2_2_x = VersionMeta(name='current_2_2_x', family='2.2', variant='current', version='2.2.13', min_proto_v=1, max_proto_v=4, java_versions=(7, 8))
      
      indev_3_0_x = VersionMeta(name='indev_3_0_x', family='3.0', variant='indev', version='github:apache/cassandra-3.0', min_proto_v=3, max_proto_v=4, java_versions=(8,))
      current_3_0_x = VersionMeta(name='current_3_0_x', family='3.0', variant='current', version='3.0.23', min_proto_v=3, max_proto_v=4, java_versions=(8,))
      
      indev_3_11_x = VersionMeta(name='indev_3_11_x', family='3.11', variant='indev', version='github:apache/cassandra-3.11', min_proto_v=3, max_proto_v=4, java_versions=(8,))
      current_3_11_x = VersionMeta(name='current_3_11_x', family='3.11', variant='current', version='3.11.9', min_proto_v=3, max_proto_v=4, java_versions=(8,))
      

      later on in the code we have some manifest filtering:

                  if filter_for_current_family and not origin_meta.matches_current_env_version_family and not destination_meta.matches_current_env_version_family:
                      logger.debug("skipping class creation, origin version {} and destination version {} do not match target version {}, and --upgrade-target-version-only was set".format(origin_meta.name, destination_meta.name, VERSION_FAMILY))
                      continue
      

      This does not cause any problems for trunk, but when I tried to run some upgrade tests on 3.11 build, I could not do anything.

      Therefore we need to either change families in manifest as follows:

      • 2.1 -> 2.1.x
      • 2.2 -> 2.2.x
      • 3.0 -> 3.0.x
      • 3.11 -> 3.x

      or change how we assign version family for the current build

      Attachments

        Issue Links

          Activity

            People

              jlewandowski Jacek Lewandowski
              jlewandowski Jacek Lewandowski
              Jacek Lewandowski
              Michael Semb Wever, Tomasz Lasica
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 2h 40m
                  2h 40m