diff options
author | Robert Guo <robert.guo@mongodb.com> | 2021-07-22 07:35:13 -0400 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-07-22 14:50:12 +0000 |
commit | bc5f93907101a0bc7dce0749bfd40d9bb83d73f0 (patch) | |
tree | a929f8b6a1258c5e50c62ae8ee282611a1fcee2f | |
parent | 73b4bcdabaddc1e2b5b59a19e0d7bae969a85669 (diff) | |
download | mongo-bc5f93907101a0bc7dce0749bfd40d9bb83d73f0.tar.gz |
SERVER-58172 run multiversion tests on master with 5.0 and disable incompatible tests
47 files changed, 188 insertions, 195 deletions
diff --git a/buildscripts/evergreen_gen_multiversion_tests.py b/buildscripts/evergreen_gen_multiversion_tests.py index e4cfcaf2ec3..5105e68ed98 100755 --- a/buildscripts/evergreen_gen_multiversion_tests.py +++ b/buildscripts/evergreen_gen_multiversion_tests.py @@ -58,7 +58,7 @@ def get_backports_required_hash_for_shell_version(mongo_shell_path=None): raise ValueError("Could not find a valid commit hash from the last-lts mongo binary.") -def get_last_lts_yaml(commit_hash): +def get_old_yaml(commit_hash): """Download BACKPORTS_REQUIRED_FILE from the last LTS commit and return the yaml.""" LOGGER.info(f"Downloading file from commit hash of last-lts branch {commit_hash}") response = requests.get( @@ -105,29 +105,36 @@ def generate_exclude_yaml(output: str) -> None: # Get the state of the backports_required_for_multiversion_tests.yml file for the last-lts # binary we are running tests against. We do this by using the commit hash from the last-lts # mongo shell executable. - last_lts_commit_hash = get_backports_required_hash_for_shell_version( - mongo_shell_path=LAST_LTS_MONGO_BINARY) + # TODO: SERVER-55857 Support LAST_LTS after backporting to 5.0. + old_version_commit_hash = get_backports_required_hash_for_shell_version( + mongo_shell_path=LAST_CONTINUOUS_MONGO_BINARY) # Get the yaml contents from the last-lts commit. - backports_required_last_lts = get_last_lts_yaml(last_lts_commit_hash) + backports_required_old = get_old_yaml(old_version_commit_hash) def diff(list1, list2): return [elem for elem in (list1 or []) if elem not in (list2 or [])] - suites_latest = backports_required_latest["last-lts"]["suites"] or {} - # Check if the changed syntax for etc/backports_required_for_multiversion_tests.yml has been - # backported. - # This variable and all branches where it's not set can be deleted after backporting the change. - change_backported = "last-lts" in backports_required_last_lts.keys() - if change_backported: - always_exclude = diff(backports_required_latest["last-lts"]["all"], - backports_required_last_lts["last-lts"]["all"]) - suites_last_lts: defaultdict = defaultdict( - list, backports_required_last_lts["last-lts"]["suites"]) - else: - always_exclude = diff(backports_required_latest["last-lts"]["all"], - backports_required_last_lts["all"]) - suites_last_lts: defaultdict = defaultdict(list, backports_required_last_lts["suites"]) + def get_suite_exclusions(version_key): + + _suites_latest = backports_required_latest[version_key]["suites"] or {} + # Check if the changed syntax for etc/backports_required_for_multiversion_tests.yml has been + # backported. + # This variable and all branches where it's not set can be deleted after backporting the change. + change_backported = version_key in backports_required_old.keys() + if change_backported: + _always_exclude = diff(backports_required_latest[version_key]["all"], + backports_required_old[version_key]["all"]) + _suites_old: defaultdict = defaultdict(list, + backports_required_old[version_key]["suites"]) + else: + _always_exclude = diff(backports_required_latest[version_key]["all"], + backports_required_old["all"]) + _suites_old: defaultdict = defaultdict(list, backports_required_old["suites"]) + + return _suites_latest, _suites_old, _always_exclude + + suites_latest, suites_old, always_exclude = get_suite_exclusions('last-continuous') tags = _tags.TagsConfig() @@ -138,7 +145,7 @@ def generate_exclude_yaml(output: str) -> None: # Tag tests that are excluded on a suite-by-suite basis. for suite in suites_latest.keys(): test_set = set() - for elem in diff(suites_latest[suite], suites_last_lts[suite]): + for elem in diff(suites_latest[suite], suites_old[suite]): test_set.add(elem["test_file"]) for test in test_set: tags.add_tag("js_test", test, f"{suite}_{BACKPORT_REQUIRED_TAG}") diff --git a/buildscripts/resmokeconfig/setup_multiversion/setup_multiversion_config.yml b/buildscripts/resmokeconfig/setup_multiversion/setup_multiversion_config.yml index bbb3d30710b..90232faa64a 100644 --- a/buildscripts/resmokeconfig/setup_multiversion/setup_multiversion_config.yml +++ b/buildscripts/resmokeconfig/setup_multiversion/setup_multiversion_config.yml @@ -8,9 +8,6 @@ evergreen_projects: - mongodb-mongo-master - mongodb-mongo-v5.0 - - mongodb-mongo-v4.9 - - mongodb-mongo-v4.8 - - mongodb-mongo-v4.7 - mongodb-mongo-v4.4 - mongodb-mongo-v4.2 - mongodb-mongo-v4.0 diff --git a/buildscripts/resmokeconfig/suites/concurrency_sharded_replication.yml b/buildscripts/resmokeconfig/suites/concurrency_sharded_replication.yml index cb95938a091..4236e14623a 100644 --- a/buildscripts/resmokeconfig/suites/concurrency_sharded_replication.yml +++ b/buildscripts/resmokeconfig/suites/concurrency_sharded_replication.yml @@ -1,5 +1,6 @@ test_kind: fsm_workload_test -use_in_multiversion: concurrency_sharded_replication_multiversion_passthrough +# TODO SERVER-58706 re-enable this multiversion suite. +#use_in_multiversion: concurrency_sharded_replication_multiversion_passthrough selector: roots: diff --git a/buildscripts/resmokeconfig/suites/sharding_last_lts_mongos_and_mixed_shards.yml b/buildscripts/resmokeconfig/suites/sharding_last_lts_mongos_and_mixed_shards.yml index d445fbc0d7a..aa168748989 100644 --- a/buildscripts/resmokeconfig/suites/sharding_last_lts_mongos_and_mixed_shards.yml +++ b/buildscripts/resmokeconfig/suites/sharding_last_lts_mongos_and_mixed_shards.yml @@ -2,46 +2,49 @@ test_kind: js_test selector: roots: - - jstests/sharding/*.js - - jstests/sharding/change_streams/*.js - - jstests/sharding/query/*.js - exclude_with_any_tags: - - multiversion_incompatible - - requires_fcv_47 - - requires_fcv_48 - - requires_fcv_49 - - requires_fcv_50 - - requires_fcv_51 - - backport_required_multiversion - - sharding_last_lts_mongos_and_mixed_shards_backport_required_multiversion - - disabled_due_to_server_58295 - exclude_files: - # Requires fix to SERVER-31689 - - jstests/sharding/query/aggregation_currentop.js - # SERVER-33683: We added a restriction on using an aggregation within a transaction against - # mongos. This should be removed and the test can be adjusted and re-added to this passthrough. - - jstests/sharding/aggregations_in_session.js - # Enable when SERVER-43860 is backported by BACKPORT-5471 or 4.4 becomes last-lts - - jstests/sharding/agg_merge_hashed.js - - jstests/sharding/merge_from_stale_mongos.js - - jstests/sharding/query/merge_stale_on_fields.js - - jstests/sharding/refresh_sessions.js - - jstests/sharding/query/lookup.js - - jstests/sharding/query/merge_command_options.js - - jstests/sharding/max_time_ms_enforced_on_shard.js - # Enable when SERVER-44733 is backported - - jstests/sharding/change_streams_update_lookup_shard_metadata_missing.js - - jstests/sharding/repl_monitor_refresh.js - - jstests/sharding/retryable_write_error_labels.js - # Enable when SERVER-43310 is backported - - jstests/sharding/cluster_create_indexes_always_routes_through_primary.js - # Enable when SERVER-43614 is backported. - - jstests/sharding/query/unionWith_current_op.js - - jstests/sharding/verify_sessions_expiration_sharded.js - - # This tag file can be created using ./buildscripts/evergreen_gen_multiversion_tests.py - # or downloaded from the evergreen task. - tag_file: multiversion_exclude_tags.yml + # shardingtest.js relies on FCV and bin versions to be equal; this can be re-enabled after FCV constants are updated. + # disabled_due_to_server_58295 + - jstests/DISABLED_DUE_TO_SERVER_58295/* +# - jstests/sharding/*.js +# - jstests/sharding/query/*.js +# - jstests/sharding/change_streams/*.js +# exclude_with_any_tags: +# - multiversion_incompatible +# - requires_fcv_47 +# - requires_fcv_48 +# - requires_fcv_49 +# - requires_fcv_50 +# - requires_fcv_51 +# - backport_required_multiversion +# - sharding_last_lts_mongos_and_mixed_shards_backport_required_multiversion +# - disabled_due_to_server_58295 +# exclude_files: +# # Requires fix to SERVER-31689 +# - jstests/sharding/query/aggregation_currentop.js +# # SERVER-33683: We added a restriction on using an aggregation within a transaction against +# # mongos. This should be removed and the test can be adjusted and re-added to this passthrough. +# - jstests/sharding/aggregations_in_session.js +# # Enable when SERVER-43860 is backported by BACKPORT-5471 or 4.4 becomes last-lts +# - jstests/sharding/agg_merge_hashed.js +# - jstests/sharding/merge_from_stale_mongos.js +# - jstests/sharding/query/merge_stale_on_fields.js +# - jstests/sharding/refresh_sessions.js +# - jstests/sharding/query/lookup.js +# - jstests/sharding/query/merge_command_options.js +# - jstests/sharding/max_time_ms_enforced_on_shard.js +# # Enable when SERVER-44733 is backported +# - jstests/sharding/change_streams_update_lookup_shard_metadata_missing.js +# - jstests/sharding/repl_monitor_refresh.js +# - jstests/sharding/retryable_write_error_labels.js +# # Enable when SERVER-43310 is backported +# - jstests/sharding/cluster_create_indexes_always_routes_through_primary.js +# # Enable when SERVER-43614 is backported. +# - jstests/sharding/query/unionWith_current_op.js +# - jstests/sharding/verify_sessions_expiration_sharded.js +# +# # This tag file can be created using ./buildscripts/evergreen_gen_multiversion_tests.py +# # or downloaded from the evergreen task. +# tag_file: multiversion_exclude_tags.yml executor: config: diff --git a/buildscripts/resmokelib/config.py b/buildscripts/resmokelib/config.py index 4dcaca7061a..f3e07a449fc 100644 --- a/buildscripts/resmokelib/config.py +++ b/buildscripts/resmokelib/config.py @@ -102,7 +102,7 @@ DEFAULTS = { "transport_layer": None, "user_friendly_output": None, "mixed_bin_versions": None, - "multiversion_bin_version": "last_lts", + "old_bin_version": "last_continuous", "linear_chain": None, "num_replset_nodes": None, "num_shards": None, @@ -244,13 +244,13 @@ class MultiversionOptions(object): """Represent the multiversion version choices.""" LAST_LTS = "last_lts" - LAST_CONTINOUS = "last_continuous" + LAST_CONTINUOUS = "last_continuous" @classmethod def all_options(cls): """Return available version options for multiversion.""" - return [cls.LAST_LTS, cls.LAST_CONTINOUS] + return [cls.LAST_LTS, cls.LAST_CONTINUOUS] ## @@ -565,3 +565,9 @@ LOGGER_DIR = None # Generated logging config for the current invocation. LOGGING_CONFIG: dict = {} SHORTEN_LOGGER_NAME_CONFIG: dict = {} + +# Whether legacy multiversion code is used. This value is not used on the master version of +# resmoke.py but is needed to ensure the v5.0 version of fixture classes (e.g. standalone.py) +# that get loaded for multiversion tests can behave correctly on master and on v5.0; the latter +# case runs 5.0 and 4.4 binaries and has this value set to True. Can be removed after 6.0. +USE_LEGACY_MULTIVERSION = True diff --git a/buildscripts/resmokelib/configure_resmoke.py b/buildscripts/resmokelib/configure_resmoke.py index a338157676b..e820e2262d7 100644 --- a/buildscripts/resmokelib/configure_resmoke.py +++ b/buildscripts/resmokelib/configure_resmoke.py @@ -210,7 +210,7 @@ def _update_config_vars(values): # pylint: disable=too-many-statements,too-many if _config.MIXED_BIN_VERSIONS is not None: _config.MIXED_BIN_VERSIONS = _config.MIXED_BIN_VERSIONS.split("-") - _config.MULTIVERSION_BIN_VERSION = config.pop("multiversion_bin_version") + _config.MULTIVERSION_BIN_VERSION = config.pop("old_bin_version") _config.INSTALL_DIR = config.pop("install_dir") if _config.INSTALL_DIR is not None: diff --git a/buildscripts/resmokelib/core/programs.py b/buildscripts/resmokelib/core/programs.py index 7b76f82af3b..2a9b3715957 100644 --- a/buildscripts/resmokelib/core/programs.py +++ b/buildscripts/resmokelib/core/programs.py @@ -191,8 +191,8 @@ def mongo_shell_program( # pylint: disable=too-many-arguments,too-many-branches # If the 'logComponentVerbosity' setParameter for mongod was not already specified, we set its # value to a default. - mongod_set_parameters.setdefault("logComponentVerbosity", - mongod_launcher.default_mongod_log_component_verbosity()) + mongod_set_parameters.setdefault( + "logComponentVerbosity", mongod_launcher.get_default_log_component_verbosity_for_mongod()) # If the 'enableFlowControl' setParameter for mongod was not already specified, we set its value # to a default. diff --git a/buildscripts/resmokelib/run/__init__.py b/buildscripts/resmokelib/run/__init__.py index ede083f8454..593f0a8dc84 100644 --- a/buildscripts/resmokelib/run/__init__.py +++ b/buildscripts/resmokelib/run/__init__.py @@ -795,7 +795,7 @@ class RunPlugin(PluginInterface): " with two shards and two replica set nodes each, specify 'old-new-old-new'.") parser.add_argument( - "--multiversionBinVersion", type=str, dest="multiversion_bin_version", + "--oldBinVersion", type=str, dest="old_bin_version", choices=config.MultiversionOptions.all_options(), help="Chose the multiverion binary version as last-lts or last-continuous.") diff --git a/buildscripts/resmokelib/testing/fixtures/_builder.py b/buildscripts/resmokelib/testing/fixtures/_builder.py index 5e969e1cc1c..8c74ddfd841 100644 --- a/buildscripts/resmokelib/testing/fixtures/_builder.py +++ b/buildscripts/resmokelib/testing/fixtures/_builder.py @@ -18,8 +18,6 @@ FIXTURE_DIR = "buildscripts/resmokelib/testing/fixtures" RETRIEVE_DIR = "build/multiversionfixtures" RETRIEVE_LOCK = threading.Lock() -USE_LEGACY_MULTIVERSION = True - _BUILDERS = {} # type: ignore @@ -63,12 +61,7 @@ class ReplSetBuilder(FixtureBuilder): """Build a replica set.""" # We hijack the mixed_bin_versions passed to the fixture. mixed_bin_versions = kwargs.pop("mixed_bin_versions", config.MIXED_BIN_VERSIONS) - multiversion_bin_version = kwargs.pop("multiversion_bin_version", - config.MULTIVERSION_BIN_VERSION) - if USE_LEGACY_MULTIVERSION: - # We mark the use of the legacy multiversion system by allowing - # access to mixed_bin_versions. - kwargs["mixed_bin_versions"] = mixed_bin_versions + old_bin_version = kwargs.pop("old_bin_version", config.MULTIVERSION_BIN_VERSION) # We also hijack the num_nodes because we need it here. num_nodes = kwargs.pop("num_nodes", 2) @@ -88,20 +81,20 @@ class ReplSetBuilder(FixtureBuilder): classes = [] fcv = None - multiversion_class_suffix = "_" + multiversion_bin_version + multiversion_class_suffix = "_" + old_bin_version shell_version = { config.MultiversionOptions.LAST_LTS: multiversionconstants.LAST_LTS_MONGO_BINARY, - config.MultiversionOptions.LAST_CONTINOUS: + config.MultiversionOptions.LAST_CONTINUOUS: multiversionconstants.LAST_CONTINUOUS_MONGO_BINARY - }[multiversion_bin_version] + }[old_bin_version] mongod_version = { config.MultiversionOptions.LAST_LTS: multiversionconstants.LAST_LTS_MONGOD_BINARY, - config.MultiversionOptions.LAST_CONTINOUS: + config.MultiversionOptions.LAST_CONTINUOUS: multiversionconstants.LAST_CONTINUOUS_MONGOD_BINARY - }[multiversion_bin_version] + }[old_bin_version] if mixed_bin_versions is None: executables = [latest_mongod for x in range(num_nodes)] @@ -110,26 +103,16 @@ class ReplSetBuilder(FixtureBuilder): is_config_svr = "configsvr" in replset_config_options and replset_config_options[ "configsvr"] - if USE_LEGACY_MULTIVERSION: + load_version(version_path_suffix=multiversion_class_suffix, shell_path=shell_version) + + if not is_config_svr: executables = [ - latest_mongod if (x == "new") else multiversionconstants.LAST_LTS_MONGOD_BINARY + latest_mongod if (x == "new") else mongod_version for x in mixed_bin_versions + ] + classes = [ + latest_class if (x == "new") else f"{latest_class}{multiversion_class_suffix}" for x in mixed_bin_versions ] - classes = [latest_class for x in range(num_nodes)] - else: - load_version(version_path_suffix=multiversion_class_suffix, - shell_path=shell_version) - - if not is_config_svr: - executables = [ - latest_mongod if (x == "new") else mongod_version - for x in mixed_bin_versions - ] - classes = [ - latest_class if - (x == "new") else f"{latest_class}{multiversion_class_suffix}" - for x in mixed_bin_versions - ] if is_config_svr: # Our documented recommended path for upgrading shards lets us assume that config # server nodes will always be fully upgraded before shard nodes. @@ -138,9 +121,10 @@ class ReplSetBuilder(FixtureBuilder): num_versions = len(mixed_bin_versions) fcv = { - config.MultiversionOptions.LAST_LTS: multiversionconstants.LAST_LTS_FCV, - config.MultiversionOptions.LAST_CONTINOUS: multiversionconstants.LAST_CONTINUOUS_FCV - }[multiversion_bin_version] + config.MultiversionOptions.LAST_LTS: + multiversionconstants.LAST_LTS_FCV, config.MultiversionOptions.LAST_CONTINUOUS: + multiversionconstants.LAST_CONTINUOUS_FCV + }[old_bin_version] if num_versions != num_nodes and not is_config_svr: msg = (("The number of binary versions specified: {} do not match the number of"\ @@ -175,7 +159,7 @@ class ReplSetBuilder(FixtureBuilder): def load_version(version_path_suffix=None, shell_path=None): - """Load the last_lts/last_continous fixtures.""" + """Load the last_lts/last_continuous fixtures.""" with RETRIEVE_LOCK, registry.suffix(version_path_suffix): # Only one thread needs to retrieve the fixtures. retrieve_dir = os.path.relpath(os.path.join(RETRIEVE_DIR, version_path_suffix)) diff --git a/buildscripts/resmokelib/testing/fixtures/fixturelib.py b/buildscripts/resmokelib/testing/fixtures/fixturelib.py index e163340f3a6..f38b71e944f 100644 --- a/buildscripts/resmokelib/testing/fixtures/fixturelib.py +++ b/buildscripts/resmokelib/testing/fixtures/fixturelib.py @@ -8,7 +8,7 @@ from buildscripts.resmokelib import logging from buildscripts.resmokelib.core import network from buildscripts.resmokelib.utils.history import make_historic as _make_historic from buildscripts.resmokelib.testing.fixtures import _builder -from buildscripts.resmokelib.multiversionconstants import LAST_LTS_MONGOD_BINARY, LAST_LTS_MONGOS_BINARY +from buildscripts.resmokelib.multiversionconstants import LAST_LTS_MONGOD_BINARY, LAST_LTS_MONGOS_BINARY, LAST_CONTINUOUS_MONGOD_BINARY, LAST_CONTINUOUS_MONGOS_BINARY class FixtureLib(object): @@ -109,6 +109,9 @@ class _FixtureConfig(object): # pylint: disable=too-many-instance-attributes self.ALWAYS_USE_LOG_FILES = config.ALWAYS_USE_LOG_FILES self.LAST_LTS_MONGOD_BINARY = LAST_LTS_MONGOD_BINARY self.LAST_LTS_MONGOS_BINARY = LAST_LTS_MONGOS_BINARY + self.LAST_CONTINUOUS_MONGOD_BINARY = LAST_CONTINUOUS_MONGOD_BINARY + self.LAST_CONTINUOUS_MONGOS_BINARY = LAST_CONTINUOUS_MONGOS_BINARY + self.USE_LEGACY_MULTIVERSION = config.USE_LEGACY_MULTIVERSION self.EVERGREEN_TASK_ID = config.EVERGREEN_TASK_ID self.FLOW_CONTROL = config.FLOW_CONTROL self.FLOW_CONTROL_TICKETS = config.FLOW_CONTROL_TICKETS diff --git a/buildscripts/resmokelib/testing/fixtures/replicaset.py b/buildscripts/resmokelib/testing/fixtures/replicaset.py index 5dd35620212..1251c0607a0 100644 --- a/buildscripts/resmokelib/testing/fixtures/replicaset.py +++ b/buildscripts/resmokelib/testing/fixtures/replicaset.py @@ -61,31 +61,6 @@ class ReplicaSetFixture(interface.ReplFixture): # pylint: disable=too-many-inst linear_chain) self.linear_chain = linear_chain_option if linear_chain_option else linear_chain - # Legacy multiversion line - if self.mixed_bin_versions is not None: - mongod_executable = self.fixturelib.default_if_none( - self.mongod_executable, self.config.MONGOD_EXECUTABLE, - self.config.DEFAULT_MONGOD_EXECUTABLE) - latest_mongod = mongod_executable - # The last-lts binary is currently expected to live in '/data/multiversion', which is - # part of the PATH. - is_config_svr = "configsvr" in self.replset_config_options and self.replset_config_options[ - "configsvr"] - if not is_config_svr: - self.mixed_bin_versions = [ - latest_mongod if (x == "new") else self.config.LAST_LTS_MONGOD_BINARY - for x in self.mixed_bin_versions - ] - else: - # Our documented recommended path for upgrading shards lets us assume that config - # server nodes will always be fully upgraded before shard nodes. - self.mixed_bin_versions = [latest_mongod, latest_mongod] - num_versions = len(self.mixed_bin_versions) - if num_versions != self.num_nodes and not is_config_svr: - msg = (("The number of binary versions specified: {} do not match the number of"\ - " nodes in the replica set: {}.")).format(num_versions, self.num_nodes) - raise self.fixturelib.ServerFailure(msg) - # By default, we only use a replica set connection string if all nodes are capable of being # elected primary. if self.use_replica_set_connection_string is None: diff --git a/buildscripts/resmokelib/testing/fixtures/shardedcluster.py b/buildscripts/resmokelib/testing/fixtures/shardedcluster.py index 738f271176e..b0b2d1b7b8a 100644 --- a/buildscripts/resmokelib/testing/fixtures/shardedcluster.py +++ b/buildscripts/resmokelib/testing/fixtures/shardedcluster.py @@ -366,7 +366,7 @@ class ShardedClusterFixture(interface.Fixture): # pylint: disable=too-many-inst # The last-lts binary is currently expected to live in '/data/multiversion', which is # part of the PATH. - mongos_executable = self.mongos_executable if self.mixed_bin_versions is None else self.config.LAST_LTS_MONGOS_BINARY + mongos_executable = self.mongos_executable if self.mixed_bin_versions is None else self.config.LAST_CONTINUOUS_MONGOS_BINARY return _MongoSFixture(mongos_logger, self.job_num, self.fixturelib, dbpath_prefix=self._dbpath_prefix, diff --git a/buildscripts/resmokelib/testing/fixtures/standalone.py b/buildscripts/resmokelib/testing/fixtures/standalone.py index b0c23310474..2f1923a150a 100644 --- a/buildscripts/resmokelib/testing/fixtures/standalone.py +++ b/buildscripts/resmokelib/testing/fixtures/standalone.py @@ -187,8 +187,6 @@ DEFAULT_MONGOD_LOG_COMPONENT_VERBOSITY = { "tenantMigration": 4 } -DEFAULT_LAST_LTS_MONGOD_LOG_COMPONENT_VERBOSITY = {"replication": {"rollback": 2}, "transaction": 4} - # The default verbosity setting for any mongod processes running in Evergreen i.e. started with an # Evergreen task id. DEFAULT_EVERGREEN_MONGOD_LOG_COMPONENT_VERBOSITY = { @@ -196,13 +194,6 @@ DEFAULT_EVERGREEN_MONGOD_LOG_COMPONENT_VERBOSITY = { "sharding": {"migration": 2}, "storage": {"recovery": 2}, "transaction": 4, "tenantMigration": 4 } -# The default verbosity setting for any last-lts mongod processes running in Evergreen i.e. started -# with an Evergreen task id. -DEFAULT_EVERGREEN_LAST_LTS_MONGOD_LOG_COMPONENT_VERBOSITY = { - "replication": {"election": 4, "heartbeats": 2, "initialSync": 2, "rollback": 2}, - "storage": {"recovery": 2}, "transaction": 4 -} - class MongodLauncher(object): """Class with utilities for launching a mongod.""" @@ -237,8 +228,7 @@ class MongodLauncher(object): # Set default log verbosity levels if none were specified. if "logComponentVerbosity" not in suite_set_parameters: suite_set_parameters[ - "logComponentVerbosity"] = self.get_default_log_component_verbosity_for_mongod( - executable) + "logComponentVerbosity"] = self.get_default_log_component_verbosity_for_mongod() # minNumChunksForSessionsCollection controls the minimum number of chunks the balancer will # enforce for the sessions collection. If the actual number of chunks is less, the balancer will @@ -263,24 +253,11 @@ class MongodLauncher(object): # Set coordinateCommitReturnImmediatelyAfterPersistingDecision to false so that tests do # not need to rely on causal consistency or explicitly wait for the transaction to finish - # committing. If we are running LAST_LTS mongoD and the test suite has explicitly set the - # coordinateCommitReturnImmediatelyAfterPersistingDecision parameter, we remove it from - # the setParameter list, since coordinateCommitReturnImmediatelyAfterPersistingDecision - # does not exist prior to 4.7. - # TODO(SERVER-51682): remove the 'elif' clause on master when 5.0 becomes LAST_LTS. - if executable != self.config.LAST_LTS_MONGOD_BINARY and \ - "coordinateCommitReturnImmediatelyAfterPersistingDecision" not in suite_set_parameters: + # committing. + if "coordinateCommitReturnImmediatelyAfterPersistingDecision" not in suite_set_parameters: suite_set_parameters["coordinateCommitReturnImmediatelyAfterPersistingDecision"] = False - elif executable == self.config.LAST_LTS_MONGOD_BINARY and \ - "coordinateCommitReturnImmediatelyAfterPersistingDecision" in suite_set_parameters: - del suite_set_parameters["coordinateCommitReturnImmediatelyAfterPersistingDecision"] - # TODO SERVER-54593 to remove the special-case handling when 5.0 becomes LAST_LTS. - if "reshardingMinimumOperationDurationMillis" in suite_set_parameters: - if executable == self.config.LAST_LTS_MONGOD_BINARY: - del suite_set_parameters["reshardingMinimumOperationDurationMillis"] - elif executable != self.config.LAST_LTS_MONGOD_BINARY: - suite_set_parameters["reshardingMinimumOperationDurationMillis"] = 5000 + suite_set_parameters["reshardingMinimumOperationDurationMillis"] = 5000 # There's a periodic background thread that checks for and aborts expired transactions. # "transactionLifetimeLimitSeconds" specifies for how long a transaction can run before expiring @@ -308,8 +285,7 @@ class MongodLauncher(object): # this to 100ms for faster shutdown. On branches 4.4 and earlier, there is no quiesce mode, but # the default time for stepdown is 10 seconds. if ("replSet" in mongod_options - and "shutdownTimeoutMillisForSignaledShutdown" not in suite_set_parameters - and executable != self.config.LAST_LTS_MONGOD_BINARY): + and "shutdownTimeoutMillisForSignaledShutdown" not in suite_set_parameters): suite_set_parameters["shutdownTimeoutMillisForSignaledShutdown"] = 100 if "enableFlowControl" not in suite_set_parameters and self.config.FLOW_CONTROL is not None: @@ -374,24 +350,12 @@ class MongodLauncher(object): return self.fixturelib.mongod_program(logger, job_num, executable, process_kwargs, mongod_options) - def get_default_log_component_verbosity_for_mongod(self, executable): - """Return the correct default 'logComponentVerbosity' value for the executable version.""" - if executable == self.config.LAST_LTS_MONGOD_BINARY: - return self.default_last_lts_mongod_log_component_verbosity() - return self.default_mongod_log_component_verbosity() - - def default_mongod_log_component_verbosity(self): + def get_default_log_component_verbosity_for_mongod(self): """Return the default 'logComponentVerbosity' value to use for mongod processes.""" if self.config.EVERGREEN_TASK_ID: return DEFAULT_EVERGREEN_MONGOD_LOG_COMPONENT_VERBOSITY return DEFAULT_MONGOD_LOG_COMPONENT_VERBOSITY - def default_last_lts_mongod_log_component_verbosity(self): - """Return the default 'logComponentVerbosity' value to use for last-lts mongod processes.""" - if self.config.EVERGREEN_TASK_ID: - return DEFAULT_EVERGREEN_LAST_LTS_MONGOD_LOG_COMPONENT_VERBOSITY - return DEFAULT_LAST_LTS_MONGOD_LOG_COMPONENT_VERBOSITY - def _add_testing_set_parameters(suite_set_parameters): """ diff --git a/buildscripts/task_generation/task_types/fuzzer_tasks.py b/buildscripts/task_generation/task_types/fuzzer_tasks.py index 9616dfbfaf5..c449ab10cf9 100644 --- a/buildscripts/task_generation/task_types/fuzzer_tasks.py +++ b/buildscripts/task_generation/task_types/fuzzer_tasks.py @@ -135,7 +135,12 @@ class FuzzerGenTaskService: "gen_task_config_location": params.config_location, } # yapf: disable - commands = [ + commands = [] + + if params.require_multiversion: + commands += [FunctionCall("git get project no modules")] + + commands += [ FunctionCall("do setup"), FunctionCall("configure evergreen api credentials") if params.require_multiversion else None, diff --git a/buildscripts/task_generation/task_types/multiversion_tasks.py b/buildscripts/task_generation/task_types/multiversion_tasks.py index 3d396fadd02..87b2535fc29 100644 --- a/buildscripts/task_generation/task_types/multiversion_tasks.py +++ b/buildscripts/task_generation/task_types/multiversion_tasks.py @@ -108,6 +108,7 @@ class MultiversionGenTaskService: } commands = [ + FunctionCall("git get project no modules"), FunctionCall("do setup"), # Fetch and download the proper mongod binaries before running multiversion tests. FunctionCall("configure evergreen api credentials"), diff --git a/buildscripts/tests/task_generation/task_types/test_fuzzer_tasks.py b/buildscripts/tests/task_generation/task_types/test_fuzzer_tasks.py index 246525d9415..bf965e7c6f6 100644 --- a/buildscripts/tests/task_generation/task_types/test_fuzzer_tasks.py +++ b/buildscripts/tests/task_generation/task_types/test_fuzzer_tasks.py @@ -108,4 +108,4 @@ class TestBuildFuzzerSubTask(unittest.TestCase): sub_task = fuzzer_service.build_fuzzer_sub_task(3, mock_params, "") self.assertEqual(sub_task.name, f"{mock_params.task_name}_3_{mock_params.variant}") - self.assertEqual(len(sub_task.commands), 6) + self.assertEqual(len(sub_task.commands), 7) diff --git a/buildscripts/tests/test_evergreen_gen_multiversion_tests.py b/buildscripts/tests/test_evergreen_gen_multiversion_tests.py index 9b7c666f623..488cc2b1d9a 100644 --- a/buildscripts/tests/test_evergreen_gen_multiversion_tests.py +++ b/buildscripts/tests/test_evergreen_gen_multiversion_tests.py @@ -13,6 +13,7 @@ from buildscripts.util.fileops import read_yaml_file # pylint: disable=missing-docstring, no-self-use +@unittest.skip("Skipping until both last-lts and last-continuous are supported") class TestGenerateExcludeYaml(unittest.TestCase): def setUp(self): self._tmpdir = TemporaryDirectory() @@ -31,7 +32,7 @@ class TestGenerateExcludeYaml(unittest.TestCase): """ mock_multiversion_methods = { 'get_backports_required_hash_for_shell_version': MagicMock(), - 'get_last_lts_yaml': MagicMock(return_value=last_lts) + 'get_old_yaml': MagicMock(return_value=last_lts) } with patch.multiple('buildscripts.evergreen_gen_multiversion_tests', diff --git a/etc/evergreen.yml b/etc/evergreen.yml index 3dd49c8fa36..dd7d2ac1498 100644 --- a/etc/evergreen.yml +++ b/etc/evergreen.yml @@ -468,6 +468,14 @@ functions: enterprise: ${enterprise_rev} wtdevelop: ${wtdevelop_rev} + # Get get the mongo repo, no modules. Useful for inspecting the commit history with the + # `git` Python tool. + "git get project no modules": + - *f_expansions_write + - command: git.get_project + params: + directory: ${git_project_directory|src} + "add git tag": &add_git_tag command: subprocess.exec params: diff --git a/evergreen/multiversion_setup.sh b/evergreen/multiversion_setup.sh index 9fd7cea1984..5af1ebcf725 100644 --- a/evergreen/multiversion_setup.sh +++ b/evergreen/multiversion_setup.sh @@ -70,4 +70,4 @@ $python buildscripts/resmoke.py setup-multiversion \ --edition $edition \ --platform $platform \ --architecture $architecture \ - --useLatest 4.4 4.7 4.8 4.9 + --useLatest 4.4 5.0 diff --git a/jstests/core/mixed_version_replica_set.js b/jstests/core/mixed_version_replica_set.js index 9fcf07a621b..f0ea5bb178f 100644 --- a/jstests/core/mixed_version_replica_set.js +++ b/jstests/core/mixed_version_replica_set.js @@ -8,7 +8,9 @@ "use strict"; const latestBinVersion = MongoRunner.getBinVersionFor("latest"); -const lastLTSBinVersion = MongoRunner.getBinVersionFor("last-lts"); + +// TODO: SERVER-50389 Support both lastLTS and lastContinuous. +const lastContiuousBinVersion = MongoRunner.getBinVersionFor("last-continuous"); if (testingReplication && TestData && TestData.mixedBinVersions) { const replSetStatus = db.adminCommand({"replSetGetStatus": 1}); @@ -20,7 +22,7 @@ if (testingReplication && TestData && TestData.mixedBinVersions) { const serverStatus = admin.serverStatus(); const actualVersion = serverStatus["version"]; const expectedVersion = - TestData.mixedBinVersions[i] === "new" ? latestBinVersion : lastLTSBinVersion; + TestData.mixedBinVersions[i] === "new" ? latestBinVersion : lastContiuousBinVersion; assert(MongoRunner.areBinVersionsTheSame(actualVersion, expectedVersion)); } } else { diff --git a/jstests/multiVersion/genericSetFCVUsage/2_test_launching_cluster.js b/jstests/multiVersion/genericSetFCVUsage/2_test_launching_cluster.js index 4b56ab79874..4b596016b76 100644 --- a/jstests/multiVersion/genericSetFCVUsage/2_test_launching_cluster.js +++ b/jstests/multiVersion/genericSetFCVUsage/2_test_launching_cluster.js @@ -1,6 +1,8 @@ // // Tests launching multi-version ShardingTest clusters. // +// @tags: [disabled_due_to_server_58295] +// load('./jstests/multiVersion/libs/verify_versions.js'); diff --git a/jstests/multiVersion/genericSetFCVUsage/add_invalid_shard.js b/jstests/multiVersion/genericSetFCVUsage/add_invalid_shard.js index afafac3d148..c706d6c22f6 100644 --- a/jstests/multiVersion/genericSetFCVUsage/add_invalid_shard.js +++ b/jstests/multiVersion/genericSetFCVUsage/add_invalid_shard.js @@ -1,5 +1,7 @@ /** * Test that adding invalid or duplicate shards will fail. + * + * @tags: [disabled_due_to_server_58295] */ (function() { diff --git a/jstests/multiVersion/genericSetFCVUsage/feature_compatibility_version_lagging_secondary.js b/jstests/multiVersion/genericSetFCVUsage/feature_compatibility_version_lagging_secondary.js index 48285f2f4fe..4d9ba76eea9 100644 --- a/jstests/multiVersion/genericSetFCVUsage/feature_compatibility_version_lagging_secondary.js +++ b/jstests/multiVersion/genericSetFCVUsage/feature_compatibility_version_lagging_secondary.js @@ -1,5 +1,7 @@ // Tests that a primary with upgrade featureCompatibilityVersion cannot connect with a secondary // with a lower binary version. +// +// @tags: [disabled_due_to_server_58295] (function() { "use strict"; diff --git a/jstests/multiVersion/genericSetFCVUsage/migration_between_mixed_FCV_mixed_version_mongods.js b/jstests/multiVersion/genericSetFCVUsage/migration_between_mixed_FCV_mixed_version_mongods.js index 732efef8b05..b683100c398 100644 --- a/jstests/multiVersion/genericSetFCVUsage/migration_between_mixed_FCV_mixed_version_mongods.js +++ b/jstests/multiVersion/genericSetFCVUsage/migration_between_mixed_FCV_mixed_version_mongods.js @@ -1,6 +1,8 @@ /** * Test that it is not possible to move a chunk from an upgrade featureCompatibilityVersion node to * a downgrade binary version node. + * + * @tags: [disabled_due_to_server_58295] */ (function() { diff --git a/jstests/multiVersion/genericSetFCVUsage/rollback_latest_to_downgraded.js b/jstests/multiVersion/genericSetFCVUsage/rollback_latest_to_downgraded.js index d8328df3396..7b85f672b1c 100644 --- a/jstests/multiVersion/genericSetFCVUsage/rollback_latest_to_downgraded.js +++ b/jstests/multiVersion/genericSetFCVUsage/rollback_latest_to_downgraded.js @@ -1,6 +1,8 @@ /** * Multiversion rollback test. Checks that rollback succeeds between a * 'latest' version rollback node and a downgraded version sync source. + * + * @tags: [disabled_due_to_server_58295] */ (function() { diff --git a/jstests/multiVersion/genericSetFCVUsage/set_feature_compatibility_version.js b/jstests/multiVersion/genericSetFCVUsage/set_feature_compatibility_version.js index 3b52a77005f..308234c9500 100644 --- a/jstests/multiVersion/genericSetFCVUsage/set_feature_compatibility_version.js +++ b/jstests/multiVersion/genericSetFCVUsage/set_feature_compatibility_version.js @@ -1,5 +1,7 @@ /** * Tests setFeatureCompatibilityVersion. + * + * @tags: [disabled_due_to_server_58295] */ // Checking UUID consistency involves talking to a shard node, which in this test is shutdown diff --git a/jstests/multiVersion/migration_between_mixed_version_mongods.js b/jstests/multiVersion/migration_between_mixed_version_mongods.js index 9bde5a67987..31baaabe98c 100644 --- a/jstests/multiVersion/migration_between_mixed_version_mongods.js +++ b/jstests/multiVersion/migration_between_mixed_version_mongods.js @@ -2,6 +2,7 @@ // Testing migrations between latest and last-lts mongod versions, where the // donor is the latest version and the recipient the last-lts, and vice versa. // Migrations should be successful. +// @tags: [disabled_due_to_server_58295] // // Checking UUID consistency involves talking to a shard node, which in this test is shutdown diff --git a/jstests/multiVersion/upgrade_downgrade_sharded_cluster.js b/jstests/multiVersion/upgrade_downgrade_sharded_cluster.js index 0508696557d..92e687cdfcf 100644 --- a/jstests/multiVersion/upgrade_downgrade_sharded_cluster.js +++ b/jstests/multiVersion/upgrade_downgrade_sharded_cluster.js @@ -8,6 +8,8 @@ * 4. We verify that upgrade procedures have been performed * 5. We set FCV to old bin version + downgrade the binaries of the sharded cluster to that version * 6. We verify that downgrade procedures have been performed + * + * @tags: [disabled_due_to_server_58295] */ (function() { "use strict"; diff --git a/jstests/multiVersion/verify_versions_test.js b/jstests/multiVersion/verify_versions_test.js index d531e19aa52..9de974048c5 100644 --- a/jstests/multiVersion/verify_versions_test.js +++ b/jstests/multiVersion/verify_versions_test.js @@ -4,6 +4,8 @@ * In particular, it tests that the shell version (returned by version()) compares equal to * "latest", not equal to "last-lts", and x.y compares equal to x.y.z, but that x.w does * not. + * + * @tags: [disabled_due_to_server_58295] */ // Checking UUID consistency involves talking to a shard node, which in this test is shutdown diff --git a/jstests/replsets/cluster_chaining_override.js b/jstests/replsets/cluster_chaining_override.js index 5a913c3096e..509aed83ecf 100644 --- a/jstests/replsets/cluster_chaining_override.js +++ b/jstests/replsets/cluster_chaining_override.js @@ -1,6 +1,8 @@ /** * Tests that if chaining is disabled, enabling the server parameter * 'enableOverrideClusterChainingSetting' will allow the node to chain anyway. + * + * @tags: [disabled_due_to_server_58295] */ (function() { diff --git a/jstests/replsets/node_restarts_no_oplog_entry_at_stable.js b/jstests/replsets/node_restarts_no_oplog_entry_at_stable.js index c8cdded6ea1..651dfe63f2e 100644 --- a/jstests/replsets/node_restarts_no_oplog_entry_at_stable.js +++ b/jstests/replsets/node_restarts_no_oplog_entry_at_stable.js @@ -2,7 +2,10 @@ * Test that we can restart a node that has an oplog hole open at the stable optime * when we kill it. * - * @tags: [requires_persistence] + * @tags: [ + * requires_persistence, + * disabled_due_to_server_58295 + * ] */ (function() { "use strict"; diff --git a/jstests/replsets/oplog_sampling.js b/jstests/replsets/oplog_sampling.js index 3407b1826c9..13094411f08 100644 --- a/jstests/replsets/oplog_sampling.js +++ b/jstests/replsets/oplog_sampling.js @@ -1,7 +1,7 @@ /** * Ensure serverStatus reports the total time spent sampling the oplog for all storage engines that * support OplogStones. - * @tags: [ requires_wiredtiger, requires_persistence ] + * @tags: [ requires_wiredtiger, requires_persistence, disabled_due_to_server_58295 ] */ (function() { "use strict"; diff --git a/jstests/replsets/rollback_with_coalesced_txn_table_updates_during_oplog_application.js b/jstests/replsets/rollback_with_coalesced_txn_table_updates_during_oplog_application.js index 22adec4a939..c480313fa9a 100644 --- a/jstests/replsets/rollback_with_coalesced_txn_table_updates_during_oplog_application.js +++ b/jstests/replsets/rollback_with_coalesced_txn_table_updates_during_oplog_application.js @@ -6,7 +6,7 @@ * We also test that if a node crashes after oplog truncation during rollback, the update made to * the 'config.transactions' table is persisted on startup. * - * @tags: [requires_persistence] + * @tags: [requires_persistence, disabled_due_to_server_58295] */ (function() { diff --git a/jstests/replsets/rollback_with_coalesced_txn_table_updates_from_vectored_inserts.js b/jstests/replsets/rollback_with_coalesced_txn_table_updates_from_vectored_inserts.js index b56a40c51ab..025b318ac9e 100644 --- a/jstests/replsets/rollback_with_coalesced_txn_table_updates_from_vectored_inserts.js +++ b/jstests/replsets/rollback_with_coalesced_txn_table_updates_from_vectored_inserts.js @@ -4,7 +4,7 @@ * to the 'config.transactions' table were coalesced into a single operation when performing * vectored inserts on the primary. * - * @tags: [requires_persistence] + * @tags: [requires_persistence, disabled_due_to_server_58295] */ (function() { diff --git a/jstests/replsets/stepdown_kill_other_ops.js b/jstests/replsets/stepdown_kill_other_ops.js index 9d007a2593d..0ccd97bce6a 100644 --- a/jstests/replsets/stepdown_kill_other_ops.js +++ b/jstests/replsets/stepdown_kill_other_ops.js @@ -1,4 +1,5 @@ // SERVER-15310 Ensure that stepDown kills all other running operations +// @tags: [disabled_due_to_server_58295] (function() { "use strict"; diff --git a/jstests/sharding/database_versioning_all_commands.js b/jstests/sharding/database_versioning_all_commands.js index b95be6a9da3..37eeb8474e8 100644 --- a/jstests/sharding/database_versioning_all_commands.js +++ b/jstests/sharding/database_versioning_all_commands.js @@ -1,6 +1,8 @@ /** * Specifies for each command whether it is expected to send a databaseVersion, and verifies that * the commands match the specification. + * + * @tags: [disabled_due_to_server_58295] */ (function() { 'use strict'; diff --git a/jstests/sharding/log_remote_op_wait.js b/jstests/sharding/log_remote_op_wait.js index 06bd3a9809a..87fac5bc297 100644 --- a/jstests/sharding/log_remote_op_wait.js +++ b/jstests/sharding/log_remote_op_wait.js @@ -1,6 +1,9 @@ -/* +/** * Test that aggregation log lines include remoteOpWaitMillis: the amount of time the merger spent * waiting for results from shards. + * + * @tags: [disabled_due_to_server_58295] + * */ (function() { diff --git a/jstests/sharding/migration_waits_for_majority_commit.js b/jstests/sharding/migration_waits_for_majority_commit.js index 72ddd53c329..e0e8773ea9d 100644 --- a/jstests/sharding/migration_waits_for_majority_commit.js +++ b/jstests/sharding/migration_waits_for_majority_commit.js @@ -3,6 +3,7 @@ * when there are no transfer mod writes (SERVER-42783). * @tags: [ * requires_majority_read_concern, + * disabled_due_to_server_58295, * ] */ diff --git a/jstests/sharding/prepare_transaction_then_migrate.js b/jstests/sharding/prepare_transaction_then_migrate.js index 034259d02be..bd5110e72f9 100644 --- a/jstests/sharding/prepare_transaction_then_migrate.js +++ b/jstests/sharding/prepare_transaction_then_migrate.js @@ -3,7 +3,7 @@ * 1. Ignore multi-statement transaction prepare conflicts in the clone phase, and * 2. Pick up the changes for prepared transactions in the transfer mods phase. * - * @tags: [uses_transactions, uses_prepare_transaction] + * @tags: [uses_transactions, uses_prepare_transaction, disabled_due_to_server_58295] */ (function() { diff --git a/jstests/sharding/query/collation_shard_targeting_hashed_shard_key.js b/jstests/sharding/query/collation_shard_targeting_hashed_shard_key.js index 8652f5e549f..d3e84b53f19 100644 --- a/jstests/sharding/query/collation_shard_targeting_hashed_shard_key.js +++ b/jstests/sharding/query/collation_shard_targeting_hashed_shard_key.js @@ -2,6 +2,8 @@ /** * Test shard targeting for queries on a collection with a non-simple collation and a hashed shard * key. + * + * @tags: [disabled_due_to_server_58295] */ (function() { const st = new ShardingTest({mongos: 1, config: 1, shards: 2, rs: {nodes: 1}}); diff --git a/jstests/sharding/read_write_concern_defaults_application.js b/jstests/sharding/read_write_concern_defaults_application.js index 53429945480..76c1737dd19 100644 --- a/jstests/sharding/read_write_concern_defaults_application.js +++ b/jstests/sharding/read_write_concern_defaults_application.js @@ -25,7 +25,8 @@ * does_not_support_stepdowns, * requires_majority_read_concern, * requires_profiling, - * uses_transactions + * uses_transactions, + * disabled_due_to_server_58295, * ] */ (function() { diff --git a/jstests/sharding/rewrite_state_change_errors.js b/jstests/sharding/rewrite_state_change_errors.js index 8fccc0e366b..831696181ad 100644 --- a/jstests/sharding/rewrite_state_change_errors.js +++ b/jstests/sharding/rewrite_state_change_errors.js @@ -9,6 +9,8 @@ * * This behavior can be overridden by adding the bool `allowRewriteStateChange` * to the failpoint's configuration object. + * + * @tags: [disabled_due_to_server_58295] */ (function() { diff --git a/jstests/sharding/scaled_collection_stats.js b/jstests/sharding/scaled_collection_stats.js index cc2da406562..bda7b4ed0d5 100644 --- a/jstests/sharding/scaled_collection_stats.js +++ b/jstests/sharding/scaled_collection_stats.js @@ -1,5 +1,8 @@ /** * Verifies that scaling is applied after summing the statistics together from individual shards. + * + * @tags: [disabled_due_to_server_58295] + * */ (function() { "use strict"; diff --git a/jstests/sharding/transactions_reject_writes_for_moved_chunks.js b/jstests/sharding/transactions_reject_writes_for_moved_chunks.js index 51971b55cef..b9eb1c1231e 100644 --- a/jstests/sharding/transactions_reject_writes_for_moved_chunks.js +++ b/jstests/sharding/transactions_reject_writes_for_moved_chunks.js @@ -5,6 +5,7 @@ // requires_sharding, // uses_multi_shard_transaction, // uses_transactions, +// disabled_due_to_server_58295 // ] (function() { diff --git a/src/mongo/shell/replsettest.js b/src/mongo/shell/replsettest.js index 2b84ea78486..2063a80dbe5 100644 --- a/src/mongo/shell/replsettest.js +++ b/src/mongo/shell/replsettest.js @@ -2849,7 +2849,7 @@ var ReplSetTest = function(opts) { const rand = Random.rand(); // TODO SERVER-50389: Support last-continuous binary version with // useRandomBinVersionsWithinReplicaSet. - options.binVersion = rand < 0.5 ? "latest" : "last-lts"; + options.binVersion = rand < 0.5 ? "latest" : "last-continuous"; } print("Randomly assigned binary version: " + options.binVersion + " to node: " + n); } diff --git a/src/mongo/shell/servers.js b/src/mongo/shell/servers.js index f3692f0c486..e67682480a3 100644 --- a/src/mongo/shell/servers.js +++ b/src/mongo/shell/servers.js @@ -211,10 +211,8 @@ var extractMajorVersionFromVersionString = function(versionString) { // versions being checked in 'verify_versions_test.js' to verify it is susbstituted correctly. MongoRunner.binVersionSubs = [ new MongoRunner.VersionSub("latest", shellVersion()), - new MongoRunner.VersionSub(extractMajorVersionFromVersionString(shellVersion()), - shellVersion()), // To-be-updated when we branch for the next release. - new MongoRunner.VersionSub("last-continuous", "4.9"), + new MongoRunner.VersionSub("last-continuous", "5.0"), // To be updated when we branch for the next LTS release. new MongoRunner.VersionSub("last-lts", "4.4") ]; @@ -252,7 +250,6 @@ MongoRunner.areBinVersionsTheSame = function(versionA, versionB) { // Check for invalid version strings first. convertVersionStringToArray(MongoRunner.getBinVersionFor(versionA)); convertVersionStringToArray(MongoRunner.getBinVersionFor(versionB)); - try { return (0 === MongoRunner.compareBinVersions(versionA, versionB)); } catch (err) { @@ -295,7 +292,8 @@ MongoRunner.compareBinVersions = function(versionA, versionB) { var numA = parseInt(elementA); var numB = parseInt(elementB); - assert(!isNaN(numA) && !isNaN(numB), "Cannot compare non-equal non-numeric versions."); + assert(!isNaN(numA) && !isNaN(numB), + `Cannot compare non-equal non-numeric versions. ${elementA}, ${elementB}`); if (numA > numB) { return 1; diff --git a/src/mongo/shell/shardingtest.js b/src/mongo/shell/shardingtest.js index 8318dc9f56d..18924ffe717 100644 --- a/src/mongo/shell/shardingtest.js +++ b/src/mongo/shell/shardingtest.js @@ -957,7 +957,7 @@ var ShardingTest = function(params) { // as well, because it does not update mongosOptions.binVersion. // TODO SERVER-50389: Differentiate between 'last-lts' and 'last-continuous' when // last-continuous is supported with shardMixedBinVersions. - if ((MongoRunner.areBinVersionsTheSame(binVersion, "last-lts") && + if ((MongoRunner.areBinVersionsTheSame(binVersion, "last-continuous") && jsTestOptions().shardMixedBinVersions) || (jsTestOptions().mongosBinVersion && MongoRunner.areBinVersionsTheSame(binVersion, jsTestOptions().mongosBinVersion))) { @@ -1229,13 +1229,13 @@ var ShardingTest = function(params) { // If the test doesn't depend on specific shard binVersions, create a mixed // version // shard cluster that randomly assigns shard binVersions, half "latest" and half - // "last-lts". + // "last-continuous". // TODO SERVER-50389: Support last-continuous binary version with // shardMixedBinVersions. if (!otherParams.shardOptions.binVersion) { Random.setRandomSeed(); otherParams.shardOptions.binVersion = - MongoRunner.versionIterator(["latest", "last-lts"], true); + MongoRunner.versionIterator(["latest", "last-continuous"], true); } } |