summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Guo <robert.guo@mongodb.com>2021-07-22 07:35:13 -0400
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-07-22 14:50:12 +0000
commitbc5f93907101a0bc7dce0749bfd40d9bb83d73f0 (patch)
treea929f8b6a1258c5e50c62ae8ee282611a1fcee2f
parent73b4bcdabaddc1e2b5b59a19e0d7bae969a85669 (diff)
downloadmongo-bc5f93907101a0bc7dce0749bfd40d9bb83d73f0.tar.gz
SERVER-58172 run multiversion tests on master with 5.0 and disable incompatible tests
-rwxr-xr-xbuildscripts/evergreen_gen_multiversion_tests.py45
-rw-r--r--buildscripts/resmokeconfig/setup_multiversion/setup_multiversion_config.yml3
-rw-r--r--buildscripts/resmokeconfig/suites/concurrency_sharded_replication.yml3
-rw-r--r--buildscripts/resmokeconfig/suites/sharding_last_lts_mongos_and_mixed_shards.yml83
-rw-r--r--buildscripts/resmokelib/config.py12
-rw-r--r--buildscripts/resmokelib/configure_resmoke.py2
-rw-r--r--buildscripts/resmokelib/core/programs.py4
-rw-r--r--buildscripts/resmokelib/run/__init__.py2
-rw-r--r--buildscripts/resmokelib/testing/fixtures/_builder.py52
-rw-r--r--buildscripts/resmokelib/testing/fixtures/fixturelib.py5
-rw-r--r--buildscripts/resmokelib/testing/fixtures/replicaset.py25
-rw-r--r--buildscripts/resmokelib/testing/fixtures/shardedcluster.py2
-rw-r--r--buildscripts/resmokelib/testing/fixtures/standalone.py48
-rw-r--r--buildscripts/task_generation/task_types/fuzzer_tasks.py7
-rw-r--r--buildscripts/task_generation/task_types/multiversion_tasks.py1
-rw-r--r--buildscripts/tests/task_generation/task_types/test_fuzzer_tasks.py2
-rw-r--r--buildscripts/tests/test_evergreen_gen_multiversion_tests.py3
-rw-r--r--etc/evergreen.yml8
-rw-r--r--evergreen/multiversion_setup.sh2
-rw-r--r--jstests/core/mixed_version_replica_set.js6
-rw-r--r--jstests/multiVersion/genericSetFCVUsage/2_test_launching_cluster.js2
-rw-r--r--jstests/multiVersion/genericSetFCVUsage/add_invalid_shard.js2
-rw-r--r--jstests/multiVersion/genericSetFCVUsage/feature_compatibility_version_lagging_secondary.js2
-rw-r--r--jstests/multiVersion/genericSetFCVUsage/migration_between_mixed_FCV_mixed_version_mongods.js2
-rw-r--r--jstests/multiVersion/genericSetFCVUsage/rollback_latest_to_downgraded.js2
-rw-r--r--jstests/multiVersion/genericSetFCVUsage/set_feature_compatibility_version.js2
-rw-r--r--jstests/multiVersion/migration_between_mixed_version_mongods.js1
-rw-r--r--jstests/multiVersion/upgrade_downgrade_sharded_cluster.js2
-rw-r--r--jstests/multiVersion/verify_versions_test.js2
-rw-r--r--jstests/replsets/cluster_chaining_override.js2
-rw-r--r--jstests/replsets/node_restarts_no_oplog_entry_at_stable.js5
-rw-r--r--jstests/replsets/oplog_sampling.js2
-rw-r--r--jstests/replsets/rollback_with_coalesced_txn_table_updates_during_oplog_application.js2
-rw-r--r--jstests/replsets/rollback_with_coalesced_txn_table_updates_from_vectored_inserts.js2
-rw-r--r--jstests/replsets/stepdown_kill_other_ops.js1
-rw-r--r--jstests/sharding/database_versioning_all_commands.js2
-rw-r--r--jstests/sharding/log_remote_op_wait.js5
-rw-r--r--jstests/sharding/migration_waits_for_majority_commit.js1
-rw-r--r--jstests/sharding/prepare_transaction_then_migrate.js2
-rw-r--r--jstests/sharding/query/collation_shard_targeting_hashed_shard_key.js2
-rw-r--r--jstests/sharding/read_write_concern_defaults_application.js3
-rw-r--r--jstests/sharding/rewrite_state_change_errors.js2
-rw-r--r--jstests/sharding/scaled_collection_stats.js3
-rw-r--r--jstests/sharding/transactions_reject_writes_for_moved_chunks.js1
-rw-r--r--src/mongo/shell/replsettest.js2
-rw-r--r--src/mongo/shell/servers.js8
-rw-r--r--src/mongo/shell/shardingtest.js6
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);
}
}