diff options
author | Jason Chan <jason.chan@mongodb.com> | 2020-07-14 20:50:12 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2020-07-23 12:26:49 +0000 |
commit | 1c28b3cf02d42f3d3135560dddc43a851ccd801b (patch) | |
tree | 4549ad2cd3e19a0cec2483bc10c989805d297a78 | |
parent | e1f9d520c85c65b1fcf1d3affb067e4935c04c71 (diff) | |
download | mongo-1c28b3cf02d42f3d3135560dddc43a851ccd801b.tar.gz |
SERVER-49064 Update references of "last-stable" to use "last-continuous" and "last-lts"
108 files changed, 599 insertions, 624 deletions
diff --git a/buildscripts/evergreen_gen_multiversion_tests.py b/buildscripts/evergreen_gen_multiversion_tests.py index 8687cc617a9..888b3c00c90 100755 --- a/buildscripts/evergreen_gen_multiversion_tests.py +++ b/buildscripts/evergreen_gen_multiversion_tests.py @@ -19,8 +19,7 @@ from evergreen.api import RetryingEvergreenApi, EvergreenApi from shrub.v2 import ShrubProject, FunctionCall, Task, TaskDependency, BuildVariant, ExistingTask from buildscripts.resmokelib import config as _config -from buildscripts.resmokelib.multiversionconstants import (LAST_STABLE_MONGO_BINARY, - REQUIRES_FCV_TAG) +from buildscripts.resmokelib.multiversionconstants import (LAST_LTS_MONGO_BINARY, REQUIRES_FCV_TAG) import buildscripts.resmokelib.parser import buildscripts.util.taskname as taskname from buildscripts.util.fileops import write_file_to_dir @@ -88,11 +87,11 @@ def get_multiversion_resmoke_args(is_sharded: bool) -> str: return "--numReplSetNodes=3 --linearChain=on " -def get_backports_required_last_stable_hash(task_path_suffix: str): - """Parse the last-stable shell binary to get the commit hash.""" - last_stable_shell_exec = os.path.join(task_path_suffix, LAST_STABLE_MONGO_BINARY) - shell_version = check_output([last_stable_shell_exec, "--version"]).decode('utf-8') - last_stable_commit_hash = "" +def get_backports_required_last_lts_hash(task_path_suffix: str): + """Parse the last-lts shell binary to get the commit hash.""" + last_lts_shell_exec = os.path.join(task_path_suffix, LAST_LTS_MONGO_BINARY) + shell_version = check_output([last_lts_shell_exec, "--version"]).decode('utf-8') + last_lts_commit_hash = "" for line in shell_version.splitlines(): if "gitVersion" in line: version_line = line.split(':')[1] @@ -101,31 +100,29 @@ def get_backports_required_last_stable_hash(task_path_suffix: str): if result: commit_hash = result.group().strip('"') if not commit_hash.isalnum(): - raise ValueError(f"Error parsing last-stable commit hash. Expected an " + raise ValueError(f"Error parsing last-lts commit hash. Expected an " f"alpha-numeric string but got: {commit_hash}") return commit_hash else: break - raise ValueError("Could not find a valid commit hash from the last-stable mongo binary.") + raise ValueError("Could not find a valid commit hash from the last-lts mongo binary.") -def get_last_stable_yaml(last_stable_commit_hash, suite_name): - """Download BACKPORTS_REQUIRED_FILE from the last stable commit and return the yaml.""" - LOGGER.info( - f"Downloading file from commit hash of last-stable branch {last_stable_commit_hash}") +def get_last_lts_yaml(last_lts_commit_hash, suite_name): + """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 {last_lts_commit_hash}") response = requests.get( - f'{BACKPORTS_REQUIRED_BASE_URL}/{last_stable_commit_hash}/{ETC_DIR}/{BACKPORTS_REQUIRED_FILE}' - ) + f'{BACKPORTS_REQUIRED_BASE_URL}/{last_lts_commit_hash}/{ETC_DIR}/{BACKPORTS_REQUIRED_FILE}') # If the response was successful, no exception will be raised. response.raise_for_status() - last_stable_file = f"{last_stable_commit_hash}_{BACKPORTS_REQUIRED_FILE}" + last_lts_file = f"{last_lts_commit_hash}_{BACKPORTS_REQUIRED_FILE}" temp_dir = tempfile.mkdtemp() - with open(os.path.join(temp_dir, last_stable_file), "w") as fileh: + with open(os.path.join(temp_dir, last_lts_file), "w") as fileh: fileh.write(response.text) - backports_required_last_stable = generate_resmoke.read_yaml(temp_dir, last_stable_file) - return backports_required_last_stable[suite_name] + backports_required_last_lts = generate_resmoke.read_yaml(temp_dir, last_lts_file) + return backports_required_last_lts[suite_name] def get_exclude_files(suite_name, task_path_suffix): @@ -141,18 +138,18 @@ def get_exclude_files(suite_name, task_path_suffix): LOGGER.info(f"No tests need to be excluded from suite '{suite_name}'.") return set() - # Get the state of the backports_required_for_multiversion_tests.yml file for the last-stable - # binary we are running tests against. We do this by using the commit hash from the last-stable + # 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_stable_commit_hash = get_backports_required_last_stable_hash(task_path_suffix) + last_lts_commit_hash = get_backports_required_last_lts_hash(task_path_suffix) - # Get the yaml contents under the 'suite_name' key from the last-stable commit. - last_stable_suite_yaml = get_last_stable_yaml(last_stable_commit_hash, suite_name) - if last_stable_suite_yaml is None: + # Get the yaml contents under the 'suite_name' key from the last-lts commit. + last_lts_suite_yaml = get_last_lts_yaml(last_lts_commit_hash, suite_name) + if last_lts_suite_yaml is None: return set(elem["test_file"] for elem in latest_suite_yaml) else: return set( - elem["test_file"] for elem in latest_suite_yaml if elem not in last_stable_suite_yaml) + elem["test_file"] for elem in latest_suite_yaml if elem not in last_lts_suite_yaml) def _generate_resmoke_args(suite_file: str, mixed_version_config: str, is_sharded: bool, options, @@ -414,7 +411,7 @@ def generate_exclude_yaml(suite: str, task_path_suffix: str, is_generated_suite: Update the given multiversion suite configuration yaml to exclude tests. Compares the BACKPORTS_REQUIRED_FILE on the current branch with the same file on the - last-stable branch to determine which tests should be blacklisted. + last-lts branch to determine which tests should be blacklisted. """ enable_logging() diff --git a/buildscripts/resmokeconfig/suites/multiversion.yml b/buildscripts/resmokeconfig/suites/multiversion.yml index 54cf938c662..94653715e7d 100644 --- a/buildscripts/resmokeconfig/suites/multiversion.yml +++ b/buildscripts/resmokeconfig/suites/multiversion.yml @@ -3,7 +3,7 @@ test_kind: js_test selector: roots: - jstests/multiVersion/**/*.js - - src/mongo/db/modules/*/jstests/hot_backups/*last_stable*.js + - src/mongo/db/modules/*/jstests/hot_backups/*last_lts*.js exclude_files: # Do not execute files with helper functions. - jstests/multiVersion/libs/*.js diff --git a/buildscripts/resmokeconfig/suites/no_passthrough.yml b/buildscripts/resmokeconfig/suites/no_passthrough.yml index 6697b427266..aea44a144a9 100644 --- a/buildscripts/resmokeconfig/suites/no_passthrough.yml +++ b/buildscripts/resmokeconfig/suites/no_passthrough.yml @@ -11,7 +11,7 @@ selector: # Disable inmem_full as per SERVER-27014 - jstests/noPassthrough/inmem_full.js # Multiversion backup-restore tests must run in the multiversion suite. - - src/mongo/db/modules/*/jstests/hot_backups/*last_stable*.js + - src/mongo/db/modules/*/jstests/hot_backups/*last_lts*.js # noPassthrough tests start their own mongod's. executor: diff --git a/buildscripts/resmokeconfig/suites/sharding_last_stable_mongos_and_mixed_shards.yml b/buildscripts/resmokeconfig/suites/sharding_last_lts_mongos_and_mixed_shards.yml index e5ab6977777..5decbc32f9c 100644 --- a/buildscripts/resmokeconfig/suites/sharding_last_stable_mongos_and_mixed_shards.yml +++ b/buildscripts/resmokeconfig/suites/sharding_last_lts_mongos_and_mixed_shards.yml @@ -15,13 +15,13 @@ selector: # 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-stable + # 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 - # Enable when 4.4 becomes last stable + # Enable when 4.4 becomes last-lts - jstests/sharding/query/out_fails_to_replace_sharded_collection.js - jstests/sharding/merge_from_stale_mongos.js - jstests/sharding/migration_coordinator_basic.js @@ -30,7 +30,7 @@ selector: - jstests/sharding/test_stacked_migration_cleanup.js - jstests/sharding/kill_pinned_cursor.js - jstests/sharding/killop.js - # Enable when 4.6 becomes last stable + # Enable when 4.6 becomes last-lts - jstests/sharding/mongos_dataSize.js # Enable when SERVER-44733 is backported - jstests/sharding/change_streams_update_lookup_shard_metadata_missing.js @@ -49,7 +49,7 @@ executor: shell_options: global_vars: TestData: - mongosBinVersion: 'last-stable' + mongosBinVersion: 'last-lts' shardMixedBinVersions: true skipCheckingUUIDsConsistentAcrossCluster: true nodb: '' diff --git a/buildscripts/resmokeconfig/suites/sharding_multiversion.yml b/buildscripts/resmokeconfig/suites/sharding_multiversion.yml index 51b319ab900..112ac51f24b 100644 --- a/buildscripts/resmokeconfig/suites/sharding_multiversion.yml +++ b/buildscripts/resmokeconfig/suites/sharding_multiversion.yml @@ -20,4 +20,4 @@ executor: global_vars: TestData: useRandomBinVersionsWithinReplicaSet: true - mongosBinVersion: 'last-stable' + mongosBinVersion: 'last-lts' diff --git a/buildscripts/resmokelib/core/programs.py b/buildscripts/resmokelib/core/programs.py index d18f5d9ac70..094fbf89d2a 100644 --- a/buildscripts/resmokelib/core/programs.py +++ b/buildscripts/resmokelib/core/programs.py @@ -12,8 +12,8 @@ from buildscripts.resmokelib import config from buildscripts.resmokelib import utils from buildscripts.resmokelib.core import jasper_process from buildscripts.resmokelib.core import process -from buildscripts.resmokelib.multiversionconstants import LAST_STABLE_MONGOD_BINARY -from buildscripts.resmokelib.multiversionconstants import LAST_STABLE_MONGOS_BINARY +from buildscripts.resmokelib.multiversionconstants import LAST_LTS_MONGOD_BINARY +from buildscripts.resmokelib.multiversionconstants import LAST_LTS_MONGOS_BINARY # The below parameters define the default 'logComponentVerbosity' object passed to mongod processes # started either directly via resmoke or those that will get started by the mongo shell. We allow @@ -27,9 +27,7 @@ DEFAULT_MONGOD_LOG_COMPONENT_VERBOSITY = { "replication": {"rollback": 2}, "sharding": {"migration": 2}, "transaction": 4 } -DEFAULT_LAST_STABLE_MONGOD_LOG_COMPONENT_VERBOSITY = { - "replication": {"rollback": 2}, "transaction": 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. @@ -38,9 +36,9 @@ DEFAULT_EVERGREEN_MONGOD_LOG_COMPONENT_VERBOSITY = { "sharding": {"migration": 2}, "storage": {"recovery": 2}, "transaction": 4 } -# The default verbosity setting for any last stable mongod processes running in Evergreen i.e. started +# The default verbosity setting for any last-lts mongod processes running in Evergreen i.e. started # with an Evergreen task id. -DEFAULT_EVERGREEN_LAST_STABLE_MONGOD_LOG_COMPONENT_VERBOSITY = { +DEFAULT_EVERGREEN_LAST_LTS_MONGOD_LOG_COMPONENT_VERBOSITY = { "replication": {"election": 4, "heartbeats": 2, "initialSync": 2, "rollback": 2}, "storage": {"recovery": 2}, "transaction": 4 } @@ -86,11 +84,11 @@ def default_mongod_log_component_verbosity(): return DEFAULT_MONGOD_LOG_COMPONENT_VERBOSITY -def default_last_stable_mongod_log_component_verbosity(): - """Return the default 'logComponentVerbosity' value to use for last stable mongod processes.""" +def default_last_lts_mongod_log_component_verbosity(): + """Return the default 'logComponentVerbosity' value to use for last-lts mongod processes.""" if config.EVERGREEN_TASK_ID: - return DEFAULT_EVERGREEN_LAST_STABLE_MONGOD_LOG_COMPONENT_VERBOSITY - return DEFAULT_LAST_STABLE_MONGOD_LOG_COMPONENT_VERBOSITY + return DEFAULT_EVERGREEN_LAST_LTS_MONGOD_LOG_COMPONENT_VERBOSITY + return DEFAULT_LAST_LTS_MONGOD_LOG_COMPONENT_VERBOSITY def default_mongos_log_component_verbosity(): @@ -102,8 +100,8 @@ def default_mongos_log_component_verbosity(): def get_default_log_component_verbosity_for_mongod(executable): """Return the correct default 'logComponentVerbosity' value for the executable version.""" - if executable == LAST_STABLE_MONGOD_BINARY: - return default_last_stable_mongod_log_component_verbosity() + if executable == LAST_LTS_MONGOD_BINARY: + return default_last_lts_mongod_log_component_verbosity() return default_mongod_log_component_verbosity() @@ -157,7 +155,7 @@ def mongod_program( # pylint: disable=too-many-branches,too-many-statements # Set coordinateCommitReturnImmediatelyAfterPersistingDecision to false so that tests do # not need to rely on causal consistency or explicity wait for the transaction to finish # committing. - if executable != LAST_STABLE_MONGOD_BINARY and \ + if executable != LAST_LTS_MONGOD_BINARY and \ "coordinateCommitReturnImmediatelyAfterPersistingDecision" not in suite_set_parameters: suite_set_parameters["coordinateCommitReturnImmediatelyAfterPersistingDecision"] = False @@ -189,7 +187,7 @@ def mongod_program( # pylint: disable=too-many-branches,too-many-statements # TODO(SERVER-47797): Remove reference to waitForStepDownOnNonCommandShutdown. if ("replSet" in kwargs and "waitForStepDownOnNonCommandShutdown" not in suite_set_parameters and "shutdownTimeoutMillisForSignaledShutdown" not in suite_set_parameters): - if executable == LAST_STABLE_MONGOD_BINARY: + if executable == LAST_LTS_MONGOD_BINARY: suite_set_parameters["waitForStepDownOnNonCommandShutdown"] = False else: suite_set_parameters["shutdownTimeoutMillisForSignaledShutdown"] = 100 @@ -203,8 +201,8 @@ def mongod_program( # pylint: disable=too-many-branches,too-many-statements "mode": "alwaysOn", "data": {"numTickets": config.FLOW_CONTROL_TICKETS} } - # TODO(SERVER-48645): Only keep the else block once v4.4 is not longer the last stable version - if executable == LAST_STABLE_MONGOD_BINARY: + # TODO(SERVER-48645): Only keep the else block once v4.4 is not longer the last-lts version + if executable == LAST_LTS_MONGOD_BINARY: suite_set_parameters.setdefault("enableTestCommands", True) else: _add_testing_set_parameters(suite_set_parameters) @@ -285,8 +283,8 @@ def mongos_program(logger, executable=None, process_kwargs=None, **kwargs): if "logComponentVerbosity" not in suite_set_parameters: suite_set_parameters["logComponentVerbosity"] = default_mongos_log_component_verbosity() - # TODO(SERVER-48645): Only keep the else block once v4.4 is not longer the last stable version - if executable == LAST_STABLE_MONGOS_BINARY: + # TODO(SERVER-48645): Only keep the else block once v4.4 is not longer the last-lts version + if executable == LAST_LTS_MONGOS_BINARY: suite_set_parameters.setdefault("enableTestCommands", True) else: _add_testing_set_parameters(suite_set_parameters) diff --git a/buildscripts/resmokelib/multiversionconstants.py b/buildscripts/resmokelib/multiversionconstants.py index 4a524c5f0b4..8932219038c 100644 --- a/buildscripts/resmokelib/multiversionconstants.py +++ b/buildscripts/resmokelib/multiversionconstants.py @@ -1,10 +1,10 @@ """FCV and Server binary version constants used for multiversion testing.""" -LAST_STABLE_BIN_VERSION = "4.4" -LAST_STABLE_FCV = "4.4" +LAST_LTS_BIN_VERSION = "4.4" +LAST_LTS_FCV = "4.4" LATEST_FCV = "4.5.1" -LAST_STABLE_MONGO_BINARY = "mongo-" + LAST_STABLE_BIN_VERSION -LAST_STABLE_MONGOD_BINARY = "mongod-" + LAST_STABLE_BIN_VERSION -LAST_STABLE_MONGOS_BINARY = "mongos-" + LAST_STABLE_BIN_VERSION +LAST_LTS_MONGO_BINARY = "mongo-" + LAST_LTS_BIN_VERSION +LAST_LTS_MONGOD_BINARY = "mongod-" + LAST_LTS_BIN_VERSION +LAST_LTS_MONGOS_BINARY = "mongos-" + LAST_LTS_BIN_VERSION REQUIRES_FCV_TAG = "requires_fcv_46" diff --git a/buildscripts/resmokelib/run/__init__.py b/buildscripts/resmokelib/run/__init__.py index 874b9c7beb9..f85cd431782 100644 --- a/buildscripts/resmokelib/run/__init__.py +++ b/buildscripts/resmokelib/run/__init__.py @@ -804,7 +804,7 @@ class RunPlugin(PluginInterface): metavar="version1-version2-..-versionN", help="Runs the test with the provided replica set" " binary version configuration. Specify 'old-new' to configure a replica set with a" - " 'last-stable' version primary and 'latest' version secondary. For a sharded cluster" + " 'last-lts' version primary and 'latest' version secondary. For a sharded cluster" " with two shards and two replica set nodes each, specify 'old-new-old-new'.") parser.add_argument( diff --git a/buildscripts/resmokelib/testing/fixtures/interface.py b/buildscripts/resmokelib/testing/fixtures/interface.py index 3bff66d76c3..b0daebfd415 100644 --- a/buildscripts/resmokelib/testing/fixtures/interface.py +++ b/buildscripts/resmokelib/testing/fixtures/interface.py @@ -45,9 +45,9 @@ class Fixture(object, metaclass=registry.make_registry_metaclass(_FIXTURES)): # is defined for all subclasses of Fixture. REGISTERED_NAME = "Fixture" - _LAST_STABLE_FCV = multiversion.LAST_STABLE_FCV + _LAST_LTS_FCV = multiversion.LAST_LTS_FCV _LATEST_FCV = multiversion.LATEST_FCV - _LAST_STABLE_BIN_VERSION = multiversion.LAST_STABLE_BIN_VERSION + _LAST_LTS_BIN_VERSION = multiversion.LAST_LTS_BIN_VERSION def __init__(self, logger, job_num, dbpath_prefix=None): """Initialize the fixture with a logger instance.""" diff --git a/buildscripts/resmokelib/testing/fixtures/replicaset.py b/buildscripts/resmokelib/testing/fixtures/replicaset.py index c9f0da849cc..0dc25d9c0cd 100644 --- a/buildscripts/resmokelib/testing/fixtures/replicaset.py +++ b/buildscripts/resmokelib/testing/fixtures/replicaset.py @@ -11,7 +11,7 @@ from buildscripts.resmokelib import config from buildscripts.resmokelib import errors from buildscripts.resmokelib import logging from buildscripts.resmokelib import utils -from buildscripts.resmokelib.multiversionconstants import LAST_STABLE_MONGOD_BINARY +from buildscripts.resmokelib.multiversionconstants import LAST_LTS_MONGOD_BINARY from buildscripts.resmokelib.testing.fixtures import interface from buildscripts.resmokelib.testing.fixtures import replicaset_utils from buildscripts.resmokelib.testing.fixtures import standalone @@ -64,13 +64,13 @@ class ReplicaSetFixture(interface.ReplFixture): # pylint: disable=too-many-inst mongod_executable = utils.default_if_none(config.MONGOD_EXECUTABLE, config.DEFAULT_MONGOD_EXECUTABLE) latest_mongod = mongod_executable - # The last-stable binary is currently expected to live in '/data/multiversion', which is + # 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 LAST_STABLE_MONGOD_BINARY + latest_mongod if (x == "new") else LAST_LTS_MONGOD_BINARY for x in self.mixed_bin_versions ] else: @@ -122,7 +122,7 @@ class ReplicaSetFixture(interface.ReplFixture): # pylint: disable=too-many-inst for i in range(self.num_nodes): steady_state_constraint_param = "oplogApplicationEnforcesSteadyStateConstraints" - # TODO (SERVER-47813): Set steady state constraint parameters on last-stable nodes. + # TODO (SERVER-47813): Set steady state constraint parameters on last-lts nodes. if (steady_state_constraint_param not in self.nodes[i].mongod_options["set_parameters"] and self.mixed_bin_versions is not None and self.mixed_bin_versions[i] == "new"): @@ -222,12 +222,12 @@ class ReplicaSetFixture(interface.ReplFixture): # pylint: disable=too-many-inst raise errors.ServerFailure(msg) # Initiating a replica set with a single node will use "latest" FCV. This will - # cause IncompatibleServerVersion errors if additional "last-stable" binary version + # cause IncompatibleServerVersion errors if additional "last-lts" binary version # nodes are subsequently added to the set, since such nodes cannot set their FCV to - # "latest". Therefore, we make sure the primary is "last-stable" FCV before adding in + # "latest". Therefore, we make sure the primary is "last-lts" FCV before adding in # nodes of different binary versions to the replica set. client.admin.command( - {"setFeatureCompatibilityVersion": ReplicaSetFixture._LAST_STABLE_FCV}) + {"setFeatureCompatibilityVersion": ReplicaSetFixture._LAST_LTS_FCV}) if self.nodes[1:]: # Wait to connect to each of the secondaries before running the replSetReconfig diff --git a/buildscripts/resmokelib/testing/fixtures/shardedcluster.py b/buildscripts/resmokelib/testing/fixtures/shardedcluster.py index b5549ad9abc..4957f462b6b 100644 --- a/buildscripts/resmokelib/testing/fixtures/shardedcluster.py +++ b/buildscripts/resmokelib/testing/fixtures/shardedcluster.py @@ -11,7 +11,7 @@ from buildscripts.resmokelib import core from buildscripts.resmokelib import errors from buildscripts.resmokelib import logging from buildscripts.resmokelib import utils -from buildscripts.resmokelib.multiversionconstants import LAST_STABLE_MONGOS_BINARY +from buildscripts.resmokelib.multiversionconstants import LAST_LTS_MONGOS_BINARY from buildscripts.resmokelib.testing.fixtures import interface from buildscripts.resmokelib.testing.fixtures import replicaset from buildscripts.resmokelib.testing.fixtures import standalone @@ -343,9 +343,9 @@ class ShardedClusterFixture(interface.Fixture): # pylint: disable=too-many-inst mongos_options = self.mongos_options.copy() mongos_options["configdb"] = self.configsvr.get_internal_connection_string() - # The last-stable binary is currently expected to live in '/data/multiversion', which is + # 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 LAST_STABLE_MONGOS_BINARY + mongos_executable = self.mongos_executable if self.mixed_bin_versions is None else LAST_LTS_MONGOS_BINARY return _MongoSFixture(mongos_logger, self.job_num, dbpath_prefix=self._dbpath_prefix, mongos_executable=mongos_executable, mongos_options=mongos_options) diff --git a/buildscripts/tests/test_burn_in_tests_multiversion.py b/buildscripts/tests/test_burn_in_tests_multiversion.py index d23e19b906b..3a334a7fce0 100644 --- a/buildscripts/tests/test_burn_in_tests_multiversion.py +++ b/buildscripts/tests/test_burn_in_tests_multiversion.py @@ -128,7 +128,7 @@ class TestCreateMultiversionGenerateTasksConfig(unittest.TestCase): # We should not generate any tasks that are not part of the burn_in_multiversion suite. self.assertEqual(0, len(evg_config_dict["tasks"])) - @patch("buildscripts.evergreen_gen_multiversion_tests.get_backports_required_last_stable_hash") + @patch("buildscripts.evergreen_gen_multiversion_tests.get_backports_required_last_lts_hash") def test_one_task_one_test(self, mock_hash): mock_hash.return_value = MONGO_4_2_HASH n_tasks = 1 @@ -145,7 +145,7 @@ class TestCreateMultiversionGenerateTasksConfig(unittest.TestCase): tasks = evg_config_dict["tasks"] self.assertEqual(len(tasks), NUM_REPL_MIXED_VERSION_CONFIGS * n_tests) - @patch("buildscripts.evergreen_gen_multiversion_tests.get_backports_required_last_stable_hash") + @patch("buildscripts.evergreen_gen_multiversion_tests.get_backports_required_last_lts_hash") def test_n_task_one_test(self, mock_hash): mock_hash.return_value = MONGO_4_2_HASH n_tasks = 2 @@ -164,7 +164,7 @@ class TestCreateMultiversionGenerateTasksConfig(unittest.TestCase): len(tasks), (NUM_REPL_MIXED_VERSION_CONFIGS + NUM_SHARDED_MIXED_VERSION_CONFIGS) * n_tests) - @patch("buildscripts.evergreen_gen_multiversion_tests.get_backports_required_last_stable_hash") + @patch("buildscripts.evergreen_gen_multiversion_tests.get_backports_required_last_lts_hash") def test_one_task_n_test(self, mock_hash): mock_hash.return_value = MONGO_4_2_HASH n_tasks = 1 @@ -181,7 +181,7 @@ class TestCreateMultiversionGenerateTasksConfig(unittest.TestCase): tasks = evg_config_dict["tasks"] self.assertEqual(len(tasks), NUM_REPL_MIXED_VERSION_CONFIGS * n_tests) - @patch("buildscripts.evergreen_gen_multiversion_tests.get_backports_required_last_stable_hash") + @patch("buildscripts.evergreen_gen_multiversion_tests.get_backports_required_last_lts_hash") def test_n_task_m_test(self, mock_hash): mock_hash.return_value = MONGO_4_2_HASH n_tasks = 2 diff --git a/etc/backports_required_for_multiversion_tests.yml b/etc/backports_required_for_multiversion_tests.yml index b65a00a46e5..ec17e667f54 100644 --- a/etc/backports_required_for_multiversion_tests.yml +++ b/etc/backports_required_for_multiversion_tests.yml @@ -1,11 +1,11 @@ # This file is intended to track tests that should be blacklisted from multiversion testing due to -# changes that have not yet been backported to the last-stable development branch. +# changes that have not yet been backported to the last-lts development branch. # # Usage: # Add the server ticket number and the path to the test file for the test you intend to blacklist # under the appropriate suite. Any test in a (ticket, test_file) pair that appears in this file but -# not in the last-stable branch version of this file indicates that a commit has not yet been -# backported to the last-stable branch and will be excluded from the multiversion suite +# not in the last-lts branch version of this file indicates that a commit has not yet been +# backported to the last-lts branch and will be excluded from the multiversion suite # corresponding to the root level suite key. # # Example: @@ -15,7 +15,7 @@ # # The above example will blacklist jstests/core/my_test_file.js from the # 'replica_sets_multiversion_gen' task until this file has been updated with the same -# (ticket, test_file) pair on the last-stable branch. +# (ticket, test_file) pair on the last-lts branch. # # Note: # For tests that need to be blacklisted for the 'replica_sets_multiversion' and diff --git a/etc/evergreen.yml b/etc/evergreen.yml index fd411e34731..d3cd6bc06aa 100644 --- a/etc/evergreen.yml +++ b/etc/evergreen.yml @@ -6772,7 +6772,7 @@ tasks: resmoke_args: --storageEngine=wiredTiger fallback_num_sub_suites: 31 -- name: sharding_last_stable_mongos_and_mixed_shards_gen +- name: sharding_last_lts_mongos_and_mixed_shards_gen tags: ["sharding", "common", "multiversion"] commands: - func: "generate resmoke tasks" diff --git a/jstests/core/mixed_version_replica_set.js b/jstests/core/mixed_version_replica_set.js index a370ab52333..9fcf07a621b 100644 --- a/jstests/core/mixed_version_replica_set.js +++ b/jstests/core/mixed_version_replica_set.js @@ -8,7 +8,7 @@ "use strict"; const latestBinVersion = MongoRunner.getBinVersionFor("latest"); -const lastStableBinVersion = MongoRunner.getBinVersionFor("last-stable"); +const lastLTSBinVersion = MongoRunner.getBinVersionFor("last-lts"); if (testingReplication && TestData && TestData.mixedBinVersions) { const replSetStatus = db.adminCommand({"replSetGetStatus": 1}); @@ -20,7 +20,7 @@ if (testingReplication && TestData && TestData.mixedBinVersions) { const serverStatus = admin.serverStatus(); const actualVersion = serverStatus["version"]; const expectedVersion = - TestData.mixedBinVersions[i] === "new" ? latestBinVersion : lastStableBinVersion; + TestData.mixedBinVersions[i] === "new" ? latestBinVersion : lastLTSBinVersion; assert(MongoRunner.areBinVersionsTheSame(actualVersion, expectedVersion)); } } else { diff --git a/jstests/core/txns/abort_unprepared_transactions_on_FCV_downgrade.js b/jstests/core/txns/abort_unprepared_transactions_on_FCV_downgrade.js index 1a778cd69c2..bee856d5e62 100644 --- a/jstests/core/txns/abort_unprepared_transactions_on_FCV_downgrade.js +++ b/jstests/core/txns/abort_unprepared_transactions_on_FCV_downgrade.js @@ -31,8 +31,8 @@ try { ErrorCodes.MaxTimeMSExpired); jsTestLog("Downgrade the featureCompatibilityVersion."); - assert.commandWorked(testDB.adminCommand({setFeatureCompatibilityVersion: lastStableFCV})); - checkFCV(adminDB, lastStableFCV); + assert.commandWorked(testDB.adminCommand({setFeatureCompatibilityVersion: lastLTSFCV})); + checkFCV(adminDB, lastLTSFCV); jsTestLog("Drop the collection. This should succeed, since the transaction was aborted."); assert.commandWorked(testDB.runCommand({drop: collName})); diff --git a/jstests/core/txns/await_prepared_transactions_on_FCV_downgrade.js b/jstests/core/txns/await_prepared_transactions_on_FCV_downgrade.js index dd4e8cd21ee..4999ed1dfc8 100644 --- a/jstests/core/txns/await_prepared_transactions_on_FCV_downgrade.js +++ b/jstests/core/txns/await_prepared_transactions_on_FCV_downgrade.js @@ -34,9 +34,8 @@ try { {configureFailPoint: "failNonIntentLocksIfWaitNeeded", mode: "alwaysOn"})); jsTestLog("Attempt to downgrade the featureCompatibilityVersion."); - assert.commandFailedWithCode( - testDB.adminCommand({setFeatureCompatibilityVersion: lastStableFCV}), - ErrorCodes.LockTimeout); + assert.commandFailedWithCode(testDB.adminCommand({setFeatureCompatibilityVersion: lastLTSFCV}), + ErrorCodes.LockTimeout); assert.commandWorked( testDB.adminCommand({configureFailPoint: "failNonIntentLocksIfWaitNeeded", mode: "off"})); @@ -45,8 +44,8 @@ try { assert.commandWorked(PrepareHelpers.commitTransaction(session, prepareTimestamp)); jsTestLog("Rerun the setFCV command and let it complete successfully."); - assert.commandWorked(testDB.adminCommand({setFeatureCompatibilityVersion: lastStableFCV})); - checkFCV(adminDB, lastStableFCV); + assert.commandWorked(testDB.adminCommand({setFeatureCompatibilityVersion: lastLTSFCV})); + checkFCV(adminDB, lastLTSFCV); } finally { assert.commandWorked( diff --git a/jstests/libs/chunk_manipulation_util.js b/jstests/libs/chunk_manipulation_util.js index 94a9f786b19..8ad1e085030 100644 --- a/jstests/libs/chunk_manipulation_util.js +++ b/jstests/libs/chunk_manipulation_util.js @@ -144,7 +144,7 @@ function waitForMoveChunkStep(shardConnection, stepNumber) { let op = in_progress.next(); inProgressStr += tojson(op); - // TODO (SERVER-45993): Remove the 4.2 and prior branch once 4.4 becomes last-stable. + // TODO (SERVER-45993): Remove the 4.2 and prior branch once 4.4 becomes last-lts. if ((op.desc && op.desc === "MoveChunk") || (op.command && op.command.moveChunk /* required for v4.2 and prior */)) { // Note: moveChunk in join mode will not have the "step" message. So keep on @@ -269,7 +269,7 @@ function killRunningMoveChunk(admin) { if (op.desc && op.desc === "MoveChunk") { opIdsToKill["MoveChunk"] = op.opid; } - // TODO (SERVER-45993): Remove this branch once 4.4 becomes last-stable. + // TODO (SERVER-45993): Remove this branch once 4.4 becomes last-lts. // For 4.2 binaries and prior. if (op.command && op.command.moveChunk) { opIdsToKill["moveChunkCommand"] = op.opid; @@ -280,7 +280,7 @@ function killRunningMoveChunk(admin) { admin.killOp(opIdsToKill.MoveChunk); abortedMigration = true; } else if (opIdsToKill.moveChunkCommand) { - // TODO (SERVER-45993): Remove this branch once 4.4 becomes last-stable. + // TODO (SERVER-45993): Remove this branch once 4.4 becomes last-lts. admin.killOp(opIdsToKill.moveChunkCommand); abortedMigration = true; } diff --git a/jstests/multiVersion/1_test_launching_replset.js b/jstests/multiVersion/1_test_launching_replset.js index e9709b6dd2b..e827824c876 100644 --- a/jstests/multiVersion/1_test_launching_replset.js +++ b/jstests/multiVersion/1_test_launching_replset.js @@ -3,7 +3,7 @@ // // Check our latest versions -var versionsToCheck = ["last-stable", "latest"]; +var versionsToCheck = ["last-lts", "latest"]; load('./jstests/multiVersion/libs/verify_versions.js'); diff --git a/jstests/multiVersion/2_test_launching_cluster.js b/jstests/multiVersion/2_test_launching_cluster.js index 966d8e3919a..43b5d34b733 100644 --- a/jstests/multiVersion/2_test_launching_cluster.js +++ b/jstests/multiVersion/2_test_launching_cluster.js @@ -7,9 +7,9 @@ load('./jstests/multiVersion/libs/verify_versions.js'); (function() { "use strict"; // Check our latest versions -var versionsToCheck = ["last-stable", "latest"]; +var versionsToCheck = ["last-lts", "latest"]; var versionsToCheckConfig = ["latest"]; -var versionsToCheckMongos = ["last-stable"]; +var versionsToCheckMongos = ["last-lts"]; jsTest.log("Testing mixed versions..."); diff --git a/jstests/multiVersion/3_upgrade_replset.js b/jstests/multiVersion/3_upgrade_replset.js index ea8826c1ad7..7f476417255 100644 --- a/jstests/multiVersion/3_upgrade_replset.js +++ b/jstests/multiVersion/3_upgrade_replset.js @@ -5,7 +5,7 @@ load('./jstests/multiVersion/libs/multi_rs.js'); load('./jstests/libs/test_background_ops.js'); -var oldVersion = "last-stable"; +var oldVersion = "last-lts"; var nodes = { n1: {binVersion: oldVersion}, diff --git a/jstests/multiVersion/add_invalid_shard.js b/jstests/multiVersion/add_invalid_shard.js index 1f9dfc9c40f..699b4cc0717 100644 --- a/jstests/multiVersion/add_invalid_shard.js +++ b/jstests/multiVersion/add_invalid_shard.js @@ -15,10 +15,10 @@ assert.commandFailedWithCode(st.admin.runCommand({addshard: st.s.host}), ErrorCodes.IllegalOperation); // Can't add a mongod with a lower binary version than our featureCompatibilityVersion. -var lastStableMongod = MongoRunner.runMongod({binVersion: "last-stable", shardsvr: ""}); -assert.commandFailedWithCode(st.admin.runCommand({addshard: lastStableMongod.host}), +var lastLTSMongod = MongoRunner.runMongod({binVersion: "last-lts", shardsvr: ""}); +assert.commandFailedWithCode(st.admin.runCommand({addshard: lastLTSMongod.host}), ErrorCodes.IncompatibleServerVersion); -MongoRunner.stopMongod(lastStableMongod); +MongoRunner.stopMongod(lastLTSMongod); // Can't add config servers as shard. assert.commandFailed(st.admin.runCommand({addshard: st._configDB})); diff --git a/jstests/multiVersion/allow_system_views_user_writes_in_fcv_44.js b/jstests/multiVersion/allow_system_views_user_writes_in_fcv_44.js index f4a60d4141f..d8628615684 100644 --- a/jstests/multiVersion/allow_system_views_user_writes_in_fcv_44.js +++ b/jstests/multiVersion/allow_system_views_user_writes_in_fcv_44.js @@ -20,7 +20,7 @@ const invalidField = { invalidField: true }; -assert.commandWorked(db.adminCommand({setFeatureCompatibilityVersion: lastStableFCV})); +assert.commandWorked(db.adminCommand({setFeatureCompatibilityVersion: lastLTSFCV})); db.system.views.drop(); assert.commandWorked(db.createCollection("system.views")); diff --git a/jstests/multiVersion/balancer_multiVersion_detect.js b/jstests/multiVersion/balancer_multiVersion_detect.js index 0975d557e1c..1e98ec001cd 100644 --- a/jstests/multiVersion/balancer_multiVersion_detect.js +++ b/jstests/multiVersion/balancer_multiVersion_detect.js @@ -7,7 +7,7 @@ jsTest.log("Starting cluster..."); var options = { mongosOptions: {verbose: 1, useLogFiles: true}, configOptions: {}, - shardOptions: {binVersion: ["latest", "last-stable"]}, + shardOptions: {binVersion: ["latest", "last-lts"]}, enableBalancer: true }; diff --git a/jstests/multiVersion/delete_orphans_on_upgrade.js b/jstests/multiVersion/delete_orphans_on_upgrade.js index 638d9ae33d1..0d10bc8bc9c 100644 --- a/jstests/multiVersion/delete_orphans_on_upgrade.js +++ b/jstests/multiVersion/delete_orphans_on_upgrade.js @@ -12,10 +12,9 @@ const ns = dbName + "." + collName; // Create 2 shards with 3 replicas each. let st = new ShardingTest({shards: {rs0: {nodes: 3}, rs1: {nodes: 3}}}); -jsTestLog("Setting FCV: " + lastStableFCV); -assert.commandWorked( - st.s.getDB("admin").runCommand({setFeatureCompatibilityVersion: lastStableFCV})); -checkFCV(st.shard0.getDB("admin"), lastStableFCV); +jsTestLog("Setting FCV: " + lastLTSFCV); +assert.commandWorked(st.s.getDB("admin").runCommand({setFeatureCompatibilityVersion: lastLTSFCV})); +checkFCV(st.shard0.getDB("admin"), lastLTSFCV); // Create a sharded collection with four chunks: [-inf, 50), [50, 100), [100, 150) [150, inf) assert.commandWorked(st.s.adminCommand({enableSharding: dbName})); diff --git a/jstests/multiVersion/delete_pending_range_deletions_on_downgrade.js b/jstests/multiVersion/delete_pending_range_deletions_on_downgrade.js index 194e7d9c696..c6c926db3e6 100644 --- a/jstests/multiVersion/delete_pending_range_deletions_on_downgrade.js +++ b/jstests/multiVersion/delete_pending_range_deletions_on_downgrade.js @@ -42,10 +42,9 @@ assert.commandWorked(deletionsColl.insert(deletionTask)); // Verify deletion count. assert.eq(deletionsColl.find().itcount(), 1); -print("setting fcv: " + lastStableFCV); -assert.commandWorked( - st.s.getDB("admin").runCommand({setFeatureCompatibilityVersion: lastStableFCV})); -checkFCV(st.shard0.getDB("admin"), lastStableFCV); +print("setting fcv: " + lastLTSFCV); +assert.commandWorked(st.s.getDB("admin").runCommand({setFeatureCompatibilityVersion: lastLTSFCV})); +checkFCV(st.shard0.getDB("admin"), lastLTSFCV); // Verify deletion count. assert.eq(deletionsColl.find().itcount(), 0); diff --git a/jstests/multiVersion/genericChangeStreams/change_streams_feature_compatibility_version.js b/jstests/multiVersion/genericChangeStreams/change_streams_feature_compatibility_version.js index 01ac768ac55..035f884eaae 100644 --- a/jstests/multiVersion/genericChangeStreams/change_streams_feature_compatibility_version.js +++ b/jstests/multiVersion/genericChangeStreams/change_streams_feature_compatibility_version.js @@ -10,7 +10,7 @@ load("jstests/replsets/rslib.js"); // For startSetIfSupportsReadMaj const rst = new ReplSetTest({ nodes: 2, - nodeOptions: {binVersion: "last-stable"}, + nodeOptions: {binVersion: "last-lts"}, }); if (!startSetIfSupportsReadMajority(rst)) { @@ -33,17 +33,17 @@ assert.soon(() => streamStartedOnOldVersion.hasNext()); let change = streamStartedOnOldVersion.next(); assert.eq(change.operationType, "insert", tojson(change)); assert.eq(change.documentKey._id, "first insert, just for resume token", tojson(change)); -const resumeTokenFromLastStable = change._id; +const resumeTokenFromLastLTS = change._id; assert.commandWorked(coll.insert({_id: "before binary upgrade"})); // Upgrade the set to the new binary version, but keep the feature compatibility version at -// last-stable. +// last-lts. rst.upgradeSet({binVersion: "latest"}); testDB = rst.getPrimary().getDB(jsTestName()); coll = testDB.change_stream_upgrade; // Test that we can resume the stream on the new binaries. -streamStartedOnOldVersion = coll.watch([], {resumeAfter: resumeTokenFromLastStable}); +streamStartedOnOldVersion = coll.watch([], {resumeAfter: resumeTokenFromLastLTS}); assert.soon(() => streamStartedOnOldVersion.hasNext()); change = streamStartedOnOldVersion.next(); assert.eq(change.operationType, "insert", tojson(change)); @@ -73,7 +73,7 @@ const streamStartedOnNewVersion = coll.watch(); // Test that we can still resume with the token from the old version. We should see the same // document again. -streamStartedOnOldVersion = coll.watch([], {resumeAfter: resumeTokenFromLastStable}); +streamStartedOnOldVersion = coll.watch([], {resumeAfter: resumeTokenFromLastLTS}); assert.soon(() => streamStartedOnOldVersion.hasNext()); change = streamStartedOnOldVersion.next(); assert.eq(change.operationType, "insert", tojson(change)); diff --git a/jstests/multiVersion/genericChangeStreams/change_streams_multi_version_cluster.js b/jstests/multiVersion/genericChangeStreams/change_streams_multi_version_cluster.js index 0237bf22dff..fd39ec6a299 100644 --- a/jstests/multiVersion/genericChangeStreams/change_streams_multi_version_cluster.js +++ b/jstests/multiVersion/genericChangeStreams/change_streams_multi_version_cluster.js @@ -17,17 +17,17 @@ const dbName = "test"; const collName = "change_streams_multi_version_sortkey"; const namespace = dbName + "." + collName; -// Start a sharded cluster in which all mongod and mongos processes are "last-stable" binVersion. We +// Start a sharded cluster in which all mongod and mongos processes are "last-lts" binVersion. We // set "writePeriodicNoops" to write to the oplog every 1 second, which ensures that test change // streams do not wait for longer than 1 second if one of the shards has no changes to report. var st = new ShardingTest({ shards: 2, rs: { nodes: 2, - binVersion: "last-stable", + binVersion: "last-lts", setParameter: {writePeriodicNoops: true, periodicNoopIntervalSecs: 1} }, - other: {mongosOptions: {binVersion: "last-stable"}} + other: {mongosOptions: {binVersion: "last-lts"}} }); let mongosConn = st.s; @@ -73,7 +73,7 @@ function insertAndValidateChanges(coll, changeStream) { } // -// Open and read a change stream on the "last-stable" cluster. +// Open and read a change stream on the "last-lts" cluster. // let coll = mongosConn.getDB(dbName)[collName]; let resumeToken = insertAndValidateChanges(coll, coll.watch()); @@ -84,14 +84,14 @@ let resumeToken = insertAndValidateChanges(coll, coll.watch()); st.upgradeCluster("latest", {upgradeShards: true, upgradeConfigs: true, upgradeMongos: false}); // -// Open and read a change stream on the upgraded cluster but still using a "last-stable" version of -// mongos and "last-stable" for the FCV. +// Open and read a change stream on the upgraded cluster but still using a "last-lts" version of +// mongos and "last-lts" for the FCV. // resumeToken = insertAndValidateChanges(coll, coll.watch([], {resumeAfter: resumeToken})); // // Upgrade mongos to the "latest" binVersion and then open and read a change stream, this time with -// all cluster nodes upgraded but still in "last-stable" FCV. +// all cluster nodes upgraded but still in "last-lts" FCV. // st.upgradeCluster("latest", {upgradeShards: false, upgradeConfigs: false, upgradeMongos: true}); mongosConn = st.s; diff --git a/jstests/multiVersion/genericChangeStreams/change_streams_multi_version_transaction.js b/jstests/multiVersion/genericChangeStreams/change_streams_multi_version_transaction.js index 60a4c939ee0..12a28dabf05 100644 --- a/jstests/multiVersion/genericChangeStreams/change_streams_multi_version_transaction.js +++ b/jstests/multiVersion/genericChangeStreams/change_streams_multi_version_transaction.js @@ -1,4 +1,4 @@ -// Test that resume tokens from a replica set running the "last-stable" mongod can be used to resume +// Test that resume tokens from a replica set running the "last-lts" mongod can be used to resume // a change stream after upgrading the replica set to the "latest" mongod, even when the change // stream includes multi-statement transactions. // @@ -11,7 +11,7 @@ load("jstests/replsets/rslib.js"); // For startSetIfSupportsReadMaj const rst = new ReplSetTest({ nodes: 2, - nodeOptions: {binVersion: "last-stable"}, + nodeOptions: {binVersion: "last-lts"}, }); if (!startSetIfSupportsReadMajority(rst)) { diff --git a/jstests/multiVersion/genericChangeStreams/change_streams_read_oplog_after_downgrade.js b/jstests/multiVersion/genericChangeStreams/change_streams_read_oplog_after_downgrade.js index 19478f346dc..4ea15f02a62 100644 --- a/jstests/multiVersion/genericChangeStreams/change_streams_read_oplog_after_downgrade.js +++ b/jstests/multiVersion/genericChangeStreams/change_streams_read_oplog_after_downgrade.js @@ -1,6 +1,6 @@ /** - * Verifies that a change stream which is resumed on a downgraded last-stable binary does not crash - * the server, even when reading oplog entries which the last-stable binary may not understand. + * Verifies that a change stream which is resumed on a downgraded last-lts binary does not crash + * the server, even when reading oplog entries which the last-lts binary may not understand. * * @tags: [uses_change_streams, requires_replication] */ @@ -220,7 +220,7 @@ function writeOplogEntriesAndCreateResumePointsOnLatestVersion() { * should be an array and each entry should have fields 'watch', 'resumeToken' and * 'endSentinelEntry'. */ -function resumeStreamsOnLastStableVersion(changeStreams) { +function resumeStreamsOnLastLTSVersion(changeStreams) { for (let changeStream of changeStreams) { jsTestLog("Validating change stream for " + tojson(changeStream)); const csCursor = changeStream.watch({resumeAfter: changeStream.resumeToken}); @@ -252,17 +252,16 @@ function resumeStreamsOnLastStableVersion(changeStreams) { // cluster has been downgraded. const changeStreamsToBeValidated = writeOplogEntriesAndCreateResumePointsOnLatestVersion(); -// Downgrade the entire cluster to 'last-stable' binVersion. -assert.commandWorked( - st.s.getDB(dbName).adminCommand({setFeatureCompatibilityVersion: lastStableFCV})); -st.upgradeCluster("last-stable"); +// Downgrade the entire cluster to 'last-lts' binVersion. +assert.commandWorked(st.s.getDB(dbName).adminCommand({setFeatureCompatibilityVersion: lastLTSFCV})); +st.upgradeCluster("last-lts"); // Refresh our reference to the sharded collection post-downgrade. shardedColl = st.s.getDB(dbName)[collName]; // Resume all the change streams that were created on latest version and validate that the change // stream doesn't crash the server after downgrade. -resumeStreamsOnLastStableVersion(changeStreamsToBeValidated); +resumeStreamsOnLastLTSVersion(changeStreamsToBeValidated); st.stop(); }()); diff --git a/jstests/multiVersion/genericSetFCVUsage/crash_mongos_against_upgraded_cluster.js b/jstests/multiVersion/genericSetFCVUsage/crash_mongos_against_upgraded_cluster.js index b99b2a60f4f..6f64b69bf2d 100644 --- a/jstests/multiVersion/genericSetFCVUsage/crash_mongos_against_upgraded_cluster.js +++ b/jstests/multiVersion/genericSetFCVUsage/crash_mongos_against_upgraded_cluster.js @@ -10,22 +10,21 @@ TestData.skipCheckingUUIDsConsistentAcrossCluster = true; (function() { "use strict"; -const lastStable = "last-stable"; +const lastLTS = "last-lts"; let st = new ShardingTest({mongos: 1, shards: 1}); const ns = "testDB.testColl"; let mongosAdminDB = st.s.getDB("admin"); -// Assert that a mongos using the 'last-stable' binary version will crash when connecting to a +// Assert that a mongos using the 'last-lts' binary version will crash when connecting to a // cluster running on the 'latest' binary version with the 'latest' FCV. -let lastStableMongos = - MongoRunner.runMongos({configdb: st.configRS.getURL(), binVersion: lastStable}); +let lastLTSMongos = MongoRunner.runMongos({configdb: st.configRS.getURL(), binVersion: lastLTS}); -assert(!lastStableMongos); +assert(!lastLTSMongos); -// Assert that a mongos using the 'last-stable' binary version will successfully connect to a -// cluster running on the 'latest' binary version with the 'last-stable' FCV. -assert.commandWorked(mongosAdminDB.runCommand({setFeatureCompatibilityVersion: lastStableFCV})); +// Assert that a mongos using the 'last-lts' binary version will successfully connect to a +// cluster running on the 'latest' binary version with the 'last-lts' FCV. +assert.commandWorked(mongosAdminDB.runCommand({setFeatureCompatibilityVersion: lastLTSFCV})); // wait until all config server nodes are downgraded // awaitReplication waits for all slaves to replicate primary's latest opTime which will @@ -33,27 +32,27 @@ assert.commandWorked(mongosAdminDB.runCommand({setFeatureCompatibilityVersion: l // change FCV. st.configRS.awaitReplication(); -lastStableMongos = MongoRunner.runMongos({configdb: st.configRS.getURL(), binVersion: lastStable}); +lastLTSMongos = MongoRunner.runMongos({configdb: st.configRS.getURL(), binVersion: lastLTS}); assert.neq(null, - lastStableMongos, - "mongos was unable to start up with binary version=" + lastStable + - " and connect to FCV=" + lastStableFCV + " cluster"); + lastLTSMongos, + "mongos was unable to start up with binary version=" + lastLTS + + " and connect to FCV=" + lastLTSFCV + " cluster"); -// Ensure that the 'lastStable' binary mongos can perform reads and writes to the shards in the +// Ensure that the 'lastLTS' binary mongos can perform reads and writes to the shards in the // cluster. -assert.commandWorked(lastStableMongos.getDB("test").foo.insert({x: 1})); -let foundDoc = lastStableMongos.getDB("test").foo.findOne({x: 1}); +assert.commandWorked(lastLTSMongos.getDB("test").foo.insert({x: 1})); +let foundDoc = lastLTSMongos.getDB("test").foo.findOne({x: 1}); assert.neq(null, foundDoc); assert.eq(1, foundDoc.x, tojson(foundDoc)); -// Assert that the 'lastStable' binary mongos will crash after the cluster is upgraded to +// Assert that the 'lastLTS' binary mongos will crash after the cluster is upgraded to // 'latestFCV'. assert.commandWorked(mongosAdminDB.runCommand({setFeatureCompatibilityVersion: latestFCV})); let error = assert.throws(function() { - lastStableMongos.getDB("test").foo.insert({x: 1}); + lastLTSMongos.getDB("test").foo.insert({x: 1}); }); assert(isNetworkError(error)); -assert(!lastStableMongos.conn); +assert(!lastLTSMongos.conn); st.stop(); })(); diff --git a/jstests/multiVersion/genericSetFCVUsage/do_upgrade_downgrade.js b/jstests/multiVersion/genericSetFCVUsage/do_upgrade_downgrade.js index addccabd15d..05a0bfef01d 100644 --- a/jstests/multiVersion/genericSetFCVUsage/do_upgrade_downgrade.js +++ b/jstests/multiVersion/genericSetFCVUsage/do_upgrade_downgrade.js @@ -9,7 +9,7 @@ load("jstests/libs/check_uuids.js"); load("jstests/libs/check_unique_indexes.js"); const latestBinary = "latest"; -const lastStableBinary = "last-stable"; +const lastLTSBinary = "last-lts"; let setFCV = function(adminDB, version) { assert.commandWorked(adminDB.runCommand({setFeatureCompatibilityVersion: version})); @@ -139,7 +139,7 @@ let standaloneTest = function(nodeOptions) { if (!nodeOptions.hasOwnProperty("shardsvr")) { // Initially featureCompatibilityVersion is latest except for when we run with shardsvr. - // We expect featureCompatibilityVersion to be last-stable for shardsvr. + // We expect featureCompatibilityVersion to be last-lts for shardsvr. checkFCV(adminDB, latestFCV); // Ensure all collections have UUIDs and all unique indexes have new version in latest @@ -147,12 +147,12 @@ let standaloneTest = function(nodeOptions) { checkCollectionUUIDs(adminDB); checkUniqueIndexFormatVersion(adminDB); - // Set featureCompatibilityVersion to last-stable. - setFCV(adminDB, lastStableFCV); + // Set featureCompatibilityVersion to last-lts. + setFCV(adminDB, lastLTSFCV); } - // Ensure featureCompatibilityVersion is last-stable and all collections still have UUIDs. - checkFCV(adminDB, lastStableFCV); + // Ensure featureCompatibilityVersion is last-lts and all collections still have UUIDs. + checkFCV(adminDB, lastLTSFCV); checkCollectionUUIDs(adminDB); // Drop and recreate unique indexes with the older FCV @@ -161,19 +161,19 @@ let standaloneTest = function(nodeOptions) { // Stop latest binary version mongod. MongoRunner.stopMongod(conn); - // Start last-stable binary version mongod with same dbpath - jsTest.log("Starting a last-stable binVersion standalone to test downgrade"); - let lastStableConn = startMongodWithVersion(noCleanDataOptions, lastStableBinary); - let lastStableAdminDB = lastStableConn.getDB("admin"); + // Start last-lts binary version mongod with same dbpath + jsTest.log("Starting a last-lts binVersion standalone to test downgrade"); + let lastLTSConn = startMongodWithVersion(noCleanDataOptions, lastLTSBinary); + let lastLTSAdminDB = lastLTSConn.getDB("admin"); // Check FCV document. - checkFCV(lastStableAdminDB, lastStableFCV); + checkFCV(lastLTSAdminDB, lastLTSFCV); - // Ensure all collections still have UUIDs on a last-stable mongod. - checkCollectionUUIDs(lastStableAdminDB); + // Ensure all collections still have UUIDs on a last-lts mongod. + checkCollectionUUIDs(lastLTSAdminDB); - // Stop last-stable binary version mongod. - MongoRunner.stopMongod(lastStableConn); + // Stop last-lts binary version mongod. + MongoRunner.stopMongod(lastLTSConn); // Start latest binary version mongod again. jsTest.log("Starting a latest binVersion standalone to test upgrade"); @@ -215,7 +215,7 @@ let replicaSetTest = function(nodeOptions) { if (!nodeOptions.hasOwnProperty("shardsvr")) { // Initially featureCompatibilityVersion is latest on primary and secondaries except for - // when we run with shardsvr. We expect featureCompatibilityVersion to be last-stable + // when we run with shardsvr. We expect featureCompatibilityVersion to be last-lts // for shardsvr. checkFCV(primaryAdminDB, latestFCV); @@ -234,16 +234,16 @@ let replicaSetTest = function(nodeOptions) { checkUniqueIndexFormatVersion(secondaryAdminDB); } - // Change featureCompatibilityVersion to last-stable. - setFCV(primaryAdminDB, lastStableFCV); + // Change featureCompatibilityVersion to last-lts. + setFCV(primaryAdminDB, lastLTSFCV); rst.awaitReplication(); } - // Ensure featureCompatibilityVersion is last-stable and all collections still have UUIDs. - checkFCV(primaryAdminDB, lastStableFCV); + // Ensure featureCompatibilityVersion is last-lts and all collections still have UUIDs. + checkFCV(primaryAdminDB, lastLTSFCV); for (let j = 0; j < secondaries.length; j++) { let secondaryAdminDB = secondaries[j].getDB("admin"); - checkFCV(secondaryAdminDB, lastStableFCV); + checkFCV(secondaryAdminDB, lastLTSFCV); } checkCollectionUUIDs(primaryAdminDB); @@ -265,23 +265,23 @@ let replicaSetTest = function(nodeOptions) { rst.stopSet(null /* signal */, true /* forRestart */); // Downgrade the ReplSetTest binaries and make sure everything is okay. - jsTest.log("Starting a last-stable binVersion ReplSetTest to test downgrade"); - rst.startSet({restart: true, binVersion: lastStableBinary}); + jsTest.log("Starting a last-lts binVersion ReplSetTest to test downgrade"); + rst.startSet({restart: true, binVersion: lastLTSBinary}); - // Check that the featureCompatiblityVersion is set to last-stable and all + // Check that the featureCompatiblityVersion is set to last-lts and all // collections still have UUIDs. - let lastStablePrimaryAdminDB = rst.getPrimary().getDB("admin"); - let lastStableSecondaries = rst.getSecondaries(); + let lastLTSPrimaryAdminDB = rst.getPrimary().getDB("admin"); + let lastLTSSecondaries = rst.getSecondaries(); - checkFCV(lastStablePrimaryAdminDB, lastStableFCV); - for (let j = 0; j < lastStableSecondaries.length; j++) { - let secondaryAdminDB = lastStableSecondaries[j].getDB("admin"); - checkFCV(secondaryAdminDB, lastStableFCV); + checkFCV(lastLTSPrimaryAdminDB, lastLTSFCV); + for (let j = 0; j < lastLTSSecondaries.length; j++) { + let secondaryAdminDB = lastLTSSecondaries[j].getDB("admin"); + checkFCV(secondaryAdminDB, lastLTSFCV); } - checkCollectionUUIDs(lastStablePrimaryAdminDB); + checkCollectionUUIDs(lastLTSPrimaryAdminDB); for (let j = 0; j < secondaries.length; j++) { - let secondaryAdminDB = lastStableSecondaries[j].getDB("admin"); + let secondaryAdminDB = lastLTSSecondaries[j].getDB("admin"); checkCollectionUUIDs(secondaryAdminDB); } diff --git a/jstests/multiVersion/genericSetFCVUsage/downgrade_after_rollback_via_refetch.js b/jstests/multiVersion/genericSetFCVUsage/downgrade_after_rollback_via_refetch.js index db9cbd971f8..42b34ed83ea 100644 --- a/jstests/multiVersion/genericSetFCVUsage/downgrade_after_rollback_via_refetch.js +++ b/jstests/multiVersion/genericSetFCVUsage/downgrade_after_rollback_via_refetch.js @@ -1,6 +1,6 @@ // When enableMajorityReadConcern=false, a node transitions from ROLLBACK to RECOVERING with an // unstable checkpoint with appliedThrough set to the common point. Test that if the node crashes -// and restarts with the last-stable version before its next stable checkpoint, then oplog entries +// and restarts with the last-lts version before its next stable checkpoint, then oplog entries // after the common point are replayed. (function() { "use strict"; @@ -26,10 +26,10 @@ function testDowngrade(enableMajorityReadConcern) { replTest.initiateWithHighElectionTimeout(config); let rollbackTest = new RollbackTest(name, replTest); - // Set the featureCompatibilityVersion to the last-stable version, so that we can downgrade + // Set the featureCompatibilityVersion to the last-lts version, so that we can downgrade // the rollback node. assert.commandWorked( - rollbackTest.getPrimary().adminCommand({setFeatureCompatibilityVersion: lastStableFCV})); + rollbackTest.getPrimary().adminCommand({setFeatureCompatibilityVersion: lastLTSFCV})); let rollbackNode = rollbackTest.transitionToRollbackOperations(); @@ -49,7 +49,7 @@ function testDowngrade(enableMajorityReadConcern) { {_id: 0}, {writeConcern: {w: "majority"}})); assert.eq(rollbackNode.getDB(dbName)[sourceCollName].find({_id: 0}).itcount(), 1); - // SERVER-47219: The following unclean shutdown followed by a restart into last-stable is not a + // SERVER-47219: The following unclean shutdown followed by a restart into last-lts is not a // legal downgrade scenario. However, this illegal downgrade is only prevented when a change // across versions requires it. There exists a patch for this test in v4.4 when illegal // downgrades are prevented. The patch for that case however requires demonstrating the illegal @@ -61,9 +61,9 @@ function testDowngrade(enableMajorityReadConcern) { // If this test starts failing on the restart below due to an illegal downgrade, forward-porting // the v4.4 patch for SERVER-47219 should be the first thing to try. // - // Kill the rollback node and restart it on the last-stable version. + // Kill the rollback node and restart it on the last-lts version. rollbackTest.restartNode( - 0, 9, {binVersion: "last-stable", enableMajorityReadConcern: enableMajorityReadConcern}); + 0, 9, {binVersion: "last-lts", enableMajorityReadConcern: enableMajorityReadConcern}); replTest.awaitSecondaryNodes(); // The rollback node should replay the new operation. diff --git a/jstests/multiVersion/genericSetFCVUsage/downgrade_replset.js b/jstests/multiVersion/genericSetFCVUsage/downgrade_replset.js index 96d9c7eeb5b..7de738a0160 100644 --- a/jstests/multiVersion/genericSetFCVUsage/downgrade_replset.js +++ b/jstests/multiVersion/genericSetFCVUsage/downgrade_replset.js @@ -1,11 +1,11 @@ // Test the downgrade of a replica set from latest version -// to last-stable version succeeds, while reads and writes continue. +// to last-lts version succeeds, while reads and writes continue. load('./jstests/multiVersion/libs/multi_rs.js'); load('./jstests/libs/test_background_ops.js'); let newVersion = "latest"; -let oldVersion = "last-stable"; +let oldVersion = "last-lts"; let name = "replsetdowngrade"; let nodes = { @@ -26,11 +26,11 @@ function runDowngradeTest() { let primaryAdminDB = rst.getPrimary().getDB("admin"); checkFCV(primaryAdminDB, latestFCV); - // We wait for the feature compatibility version to be set to lastStableFCV on all nodes of the + // We wait for the feature compatibility version to be set to lastLTSFCV on all nodes of the // replica set in order to ensure that all nodes can be successfully downgraded. This // effectively allows us to emulate upgrading to the latest version with existing data files and - // then trying to downgrade back to lastStableFCV. - assert.commandWorked(primary.adminCommand({setFeatureCompatibilityVersion: lastStableFCV})); + // then trying to downgrade back to lastLTSFCV. + assert.commandWorked(primary.adminCommand({setFeatureCompatibilityVersion: lastLTSFCV})); rst.awaitReplication(); jsTest.log("Inserting documents into collection."); diff --git a/jstests/multiVersion/genericSetFCVUsage/feature_compatibility_version_lagging_secondary.js b/jstests/multiVersion/genericSetFCVUsage/feature_compatibility_version_lagging_secondary.js index 0d06214c7b9..bba6831bd64 100644 --- a/jstests/multiVersion/genericSetFCVUsage/feature_compatibility_version_lagging_secondary.js +++ b/jstests/multiVersion/genericSetFCVUsage/feature_compatibility_version_lagging_secondary.js @@ -6,7 +6,7 @@ load("jstests/libs/write_concern_util.js"); const latest = "latest"; -const downgrade = "last-stable"; +const downgrade = "last-lts"; // Start a new replica set with two latest version nodes. let rst = new ReplSetTest({ @@ -22,7 +22,7 @@ let latestSecondary = rst.getSecondary(); // Set the featureCompatibilityVersion to the downgrade version so that a downgrade node can // join the set. assert.commandWorked( - primary.getDB("admin").runCommand({setFeatureCompatibilityVersion: lastStableFCV})); + primary.getDB("admin").runCommand({setFeatureCompatibilityVersion: lastLTSFCV})); // Add a downgrade node to the set. let downgradeSecondary = rst.add({binVersion: downgrade, rsConfig: {priority: 0}}); diff --git a/jstests/multiVersion/genericSetFCVUsage/initial_sync_last_stable_from_latest.js b/jstests/multiVersion/genericSetFCVUsage/initial_sync_last_lts_from_latest.js index 7172cb2efef..653c3472d73 100644 --- a/jstests/multiVersion/genericSetFCVUsage/initial_sync_last_stable_from_latest.js +++ b/jstests/multiVersion/genericSetFCVUsage/initial_sync_last_lts_from_latest.js @@ -1,5 +1,5 @@ /** - * Multiversion initial sync test. Tests that initial sync succeeds when a 'last-stable' version + * Multiversion initial sync test. Tests that initial sync succeeds when a 'last-lts' version * secondary syncs from a 'latest' version replica set. */ @@ -7,8 +7,8 @@ load("./jstests/multiVersion/libs/initial_sync.js"); -var testName = "multiversion_initial_sync_last_stable_from_latest"; +var testName = "multiversion_initial_sync_last_lts_from_latest"; let replSetVersion = "latest"; -let newSecondaryVersion = "last-stable"; +let newSecondaryVersion = "last-lts"; -multversionInitialSyncTest(testName, replSetVersion, newSecondaryVersion, {}, lastStableFCV); +multversionInitialSyncTest(testName, replSetVersion, newSecondaryVersion, {}, lastLTSFCV); diff --git a/jstests/multiVersion/genericSetFCVUsage/initial_sync_latest_from_last_stable.js b/jstests/multiVersion/genericSetFCVUsage/initial_sync_latest_from_last_lts.js index 14d2a690c1c..343ff94292a 100644 --- a/jstests/multiVersion/genericSetFCVUsage/initial_sync_latest_from_last_stable.js +++ b/jstests/multiVersion/genericSetFCVUsage/initial_sync_latest_from_last_lts.js @@ -1,14 +1,14 @@ /** * Multiversion initial sync test. Tests that initial sync succeeds when a 'latest' version - * secondary syncs from a 'last-stable' version replica set. + * secondary syncs from a 'last-lts' version replica set. */ 'use strict'; load("./jstests/multiVersion/libs/initial_sync.js"); -var testName = "multiversion_initial_sync_latest_from_last_stable"; -let replSetVersion = "last-stable"; +var testName = "multiversion_initial_sync_latest_from_last_lts"; +let replSetVersion = "last-lts"; let newSecondaryVersion = "latest"; -multversionInitialSyncTest(testName, replSetVersion, newSecondaryVersion, {}, lastStableFCV); +multversionInitialSyncTest(testName, replSetVersion, newSecondaryVersion, {}, lastLTSFCV); diff --git a/jstests/multiVersion/genericSetFCVUsage/major_version_upgrade.js b/jstests/multiVersion/genericSetFCVUsage/major_version_upgrade.js index 2975a91f58e..e1d1bf3bc75 100644 --- a/jstests/multiVersion/genericSetFCVUsage/major_version_upgrade.js +++ b/jstests/multiVersion/genericSetFCVUsage/major_version_upgrade.js @@ -37,7 +37,7 @@ const versions = [ {binVersion: '4.0', featureCompatibilityVersion: '4.0', testCollection: 'four_zero'}, {binVersion: '4.2', featureCompatibilityVersion: '4.2', testCollection: 'four_two'}, {binVersion: '4.4', featureCompatibilityVersion: '4.4', testCollection: 'four_four'}, - {binVersion: 'last-stable', testCollection: 'last_stable'}, + {binVersion: 'last-lts', testCollection: 'last_lts'}, {binVersion: 'latest', featureCompatibilityVersion: '4.5.1', testCollection: 'latest'}, ]; 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 5ff44165939..09f5c985584 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 @@ -16,7 +16,7 @@ TestData.skipCheckOrphans = true; let st = new ShardingTest({ - shards: [{binVersion: "latest"}, {binVersion: "last-stable"}], + shards: [{binVersion: "latest"}, {binVersion: "last-lts"}], mongos: {binVersion: "latest"}, other: {shardAsReplicaSet: false}, }); @@ -32,13 +32,13 @@ assert.commandWorked(st.s.adminCommand({shardCollection: testDB.coll.getFullName // featureCompatibilityVersion cannot be set to latestFCV on shard 1, but it will set the // featureCompatibilityVersion to latestFCV on shard 0. assert.commandFailed(st.s.adminCommand({setFeatureCompatibilityVersion: latestFCV})); -checkFCV(st.configRS.getPrimary().getDB("admin"), lastStableFCV, latestFCV); +checkFCV(st.configRS.getPrimary().getDB("admin"), lastLTSFCV, latestFCV); checkFCV(st.shard0.getDB("admin"), latestFCV); -checkFCV(st.shard1.getDB("admin"), lastStableFCV); +checkFCV(st.shard1.getDB("admin"), lastLTSFCV); -// It is not possible to move a chunk from a latestFCV shard to a last-stable binary version +// It is not possible to move a chunk from a latestFCV shard to a last-lts binary version // shard. Pass explicit writeConcern (which requires secondaryThrottle: true) to avoid problems -// if the last-stable doesn't automatically include writeConcern when running _recvChunkStart on the +// if the last-lts doesn't automatically include writeConcern when running _recvChunkStart on the // newer shard. assert.commandFailedWithCode(st.s.adminCommand({ moveChunk: testDB.coll.getFullName(), diff --git a/jstests/multiVersion/genericSetFCVUsage/repair_feature_compatibility_version.js b/jstests/multiVersion/genericSetFCVUsage/repair_feature_compatibility_version.js index ec06f436333..2c379ae0ab1 100644 --- a/jstests/multiVersion/genericSetFCVUsage/repair_feature_compatibility_version.js +++ b/jstests/multiVersion/genericSetFCVUsage/repair_feature_compatibility_version.js @@ -52,7 +52,7 @@ doStartupFailTests(latest, dbpath); // --repair can be used to restore a missing featureCompatibilityVersion document to an existing // admin database, as long as all collections have UUIDs. The FCV should be initialized to -// lastStableFCV / downgraded FCV. +// lastLTSFCV / downgraded FCV. connection = setupMissingFCVDoc(latest, dbpath); let returnCode = runMongoProgram("mongod", "--port", connection.port, "--repair", "--dbpath", dbpath); @@ -67,7 +67,7 @@ assert.neq(null, "mongod was unable to start up with version=" + latest + " and existing data files"); adminDB = connection.getDB("admin"); const fcvDoc = adminDB.system.version.findOne({_id: "featureCompatibilityVersion"}); -assert.eq(fcvDoc.version, lastStableFCV); +assert.eq(fcvDoc.version, lastLTSFCV); assert.eq(fcvDoc.targetVersion, undefined); assert.eq(fcvDoc.previousVersion, undefined); MongoRunner.stopMongod(connection); diff --git a/jstests/multiVersion/genericSetFCVUsage/rollback_last_lts_to_latest.js b/jstests/multiVersion/genericSetFCVUsage/rollback_last_lts_to_latest.js new file mode 100644 index 00000000000..c4a5538d695 --- /dev/null +++ b/jstests/multiVersion/genericSetFCVUsage/rollback_last_lts_to_latest.js @@ -0,0 +1,12 @@ +/** + * Multiversion rollback test. Checks that rollback succeeds between a + * 'last-lts' version rollback node and a 'latest' version sync source. + */ + +(function() { +"use strict"; +load("jstests/multiVersion/libs/multiversion_rollback.js"); + +var testName = "multiversion_rollback_last_lts_to_latest"; +testMultiversionRollback(testName, "last-lts", "latest"); +})();
\ No newline at end of file diff --git a/jstests/multiVersion/genericSetFCVUsage/rollback_last_stable_to_latest.js b/jstests/multiVersion/genericSetFCVUsage/rollback_last_stable_to_latest.js deleted file mode 100644 index 9d3c1a60172..00000000000 --- a/jstests/multiVersion/genericSetFCVUsage/rollback_last_stable_to_latest.js +++ /dev/null @@ -1,12 +0,0 @@ -/** - * Multiversion rollback test. Checks that rollback succeeds between a - * 'last-stable' version rollback node and a 'latest' version sync source. - */ - -(function() { -"use strict"; -load("jstests/multiVersion/libs/multiversion_rollback.js"); - -var testName = "multiversion_rollback_last_stable_to_latest"; -testMultiversionRollback(testName, "last-stable", "latest"); -})();
\ No newline at end of file diff --git a/jstests/multiVersion/genericSetFCVUsage/rollback_latest_to_last_lts.js b/jstests/multiVersion/genericSetFCVUsage/rollback_latest_to_last_lts.js new file mode 100644 index 00000000000..317d949984a --- /dev/null +++ b/jstests/multiVersion/genericSetFCVUsage/rollback_latest_to_last_lts.js @@ -0,0 +1,12 @@ +/** + * Multiversion rollback test. Checks that rollback succeeds between a + * 'latest' version rollback node and a 'last-lts' version sync source. + */ + +(function() { +"use strict"; +load("jstests/multiVersion/libs/multiversion_rollback.js"); + +var testName = "multiversion_rollback_latest_to_last_lts"; +testMultiversionRollback(testName, "latest", "last-lts"); +})();
\ No newline at end of file diff --git a/jstests/multiVersion/genericSetFCVUsage/rollback_latest_to_last_stable.js b/jstests/multiVersion/genericSetFCVUsage/rollback_latest_to_last_stable.js deleted file mode 100644 index 546065ecc5f..00000000000 --- a/jstests/multiVersion/genericSetFCVUsage/rollback_latest_to_last_stable.js +++ /dev/null @@ -1,12 +0,0 @@ -/** - * Multiversion rollback test. Checks that rollback succeeds between a - * 'latest' version rollback node and a 'last-stable' version sync source. - */ - -(function() { -"use strict"; -load("jstests/multiVersion/libs/multiversion_rollback.js"); - -var testName = "multiversion_rollback_latest_to_last_stable"; -testMultiversionRollback(testName, "latest", "last-stable"); -})();
\ No newline at end of file diff --git a/jstests/multiVersion/genericSetFCVUsage/rsm_topology_change_fcv.js b/jstests/multiVersion/genericSetFCVUsage/rsm_topology_change_fcv.js index ca864fd600f..da86a825a5d 100644 --- a/jstests/multiVersion/genericSetFCVUsage/rsm_topology_change_fcv.js +++ b/jstests/multiVersion/genericSetFCVUsage/rsm_topology_change_fcv.js @@ -20,7 +20,7 @@ const st = new ShardingTest( {mongos: [{setParameter: {replicaSetMonitorProtocol: "sdam"}}], config: 1, shards: 0}); const latestWireVersion = st.configRS.getPrimary().getMaxWireVersion(); -const lastStableRegex = +const lastContinuousRegex = makeTopologyChangeLogMsgRegex(st.configRS, latestWireVersion - 1, latestWireVersion); const latestRegex = makeTopologyChangeLogMsgRegex(st.configRS, latestWireVersion, latestWireVersion); @@ -31,8 +31,8 @@ checkLog.contains(st.s, latestRegex); jsTest.log("Downgrade FCV and verify that the RSM on the mongos detects the topology change"); assert.commandWorked(st.s.adminCommand({clearLog: 'global'})); -assert.commandWorked(st.s.adminCommand({setFeatureCompatibilityVersion: lastStableFCV})); -checkLog.contains(st.s, lastStableRegex); +assert.commandWorked(st.s.adminCommand({setFeatureCompatibilityVersion: lastContinuousFCV})); +checkLog.contains(st.s, lastContinuousRegex); jsTest.log("Upgrade FCV and verify that the RSM on the mongos detects the topology change"); assert.commandWorked(st.s.adminCommand({clearLog: 'global'})); diff --git a/jstests/multiVersion/genericSetFCVUsage/set_feature_compatibility_version.js b/jstests/multiVersion/genericSetFCVUsage/set_feature_compatibility_version.js index a5bad7e666c..694f5550a2f 100644 --- a/jstests/multiVersion/genericSetFCVUsage/set_feature_compatibility_version.js +++ b/jstests/multiVersion/genericSetFCVUsage/set_feature_compatibility_version.js @@ -21,7 +21,7 @@ resetDbpath(dbpath); let res; const latest = "latest"; -const lastStable = "last-stable"; +const lastLTS = "last-lts"; // // Standalone tests. @@ -44,14 +44,13 @@ assert.commandFailed(adminDB.runCommand({setFeatureCompatibilityVersion: "4.8"}) assert.commandFailed(adminDB.runCommand({setFeatureCompatibilityVersion: "3.4"})); jsTestLog("EXPECTED TO FAIL: setFeatureCompatibilityVersion rejects unknown fields."); -assert.commandFailed(adminDB.runCommand({setFeatureCompatibilityVersion: lastStable, unknown: 1})); +assert.commandFailed(adminDB.runCommand({setFeatureCompatibilityVersion: lastLTS, unknown: 1})); jsTestLog("EXPECTED TO FAIL: setFeatureCompatibilityVersion can only be run on the admin database"); -assert.commandFailed(conn.getDB("test").runCommand({setFeatureCompatibilityVersion: lastStable})); +assert.commandFailed(conn.getDB("test").runCommand({setFeatureCompatibilityVersion: lastLTS})); jsTestLog("EXPECTED TO FAIL: featureCompatibilityVersion cannot be set via setParameter"); -assert.commandFailed( - adminDB.runCommand({setParameter: 1, featureCompatibilityVersion: lastStable})); +assert.commandFailed(adminDB.runCommand({setParameter: 1, featureCompatibilityVersion: lastLTS})); // setFeatureCompatibilityVersion fails to downgrade FCV if the write fails. assert.commandWorked(adminDB.runCommand({ @@ -61,7 +60,7 @@ assert.commandWorked(adminDB.runCommand({ })); jsTestLog( "EXPECTED TO FAIL: setFeatureCompatibilityVersion fails to downgrade FCV if the write fails"); -assert.commandFailed(adminDB.runCommand({setFeatureCompatibilityVersion: lastStableFCV})); +assert.commandFailed(adminDB.runCommand({setFeatureCompatibilityVersion: lastLTSFCV})); checkFCV(adminDB, latestFCV); assert.commandWorked(adminDB.runCommand({ configureFailPoint: "failCollectionUpdates", @@ -69,9 +68,9 @@ assert.commandWorked(adminDB.runCommand({ mode: "off" })); -// featureCompatibilityVersion can be downgraded to 'lastStableFCV'. -assert.commandWorked(adminDB.runCommand({setFeatureCompatibilityVersion: lastStableFCV})); -checkFCV(adminDB, lastStableFCV); +// featureCompatibilityVersion can be downgraded to 'lastLTSFCV'. +assert.commandWorked(adminDB.runCommand({setFeatureCompatibilityVersion: lastLTSFCV})); +checkFCV(adminDB, lastLTSFCV); // setFeatureCompatibilityVersion fails to upgrade to 'latestFCV' if the write fails. assert.commandWorked(adminDB.runCommand({ @@ -82,7 +81,7 @@ assert.commandWorked(adminDB.runCommand({ jsTestLog( "EXPECTED TO FAIL: setFeatureCompatibilityVersion fails to upgrade to 'latestFCV' if the write fails"); assert.commandFailed(adminDB.runCommand({setFeatureCompatibilityVersion: latestFCV})); -checkFCV(adminDB, lastStableFCV); +checkFCV(adminDB, lastLTSFCV); assert.commandWorked(adminDB.runCommand({ configureFailPoint: "failCollectionUpdates", data: {collectionNS: "admin.system.version"}, @@ -101,45 +100,45 @@ assert.neq( null, conn, "mongod was unable to start up with version=" + latest + " and no data files"); adminDB = conn.getDB("admin"); checkFCV(adminDB, latestFCV); -assert.commandWorked(adminDB.runCommand({setFeatureCompatibilityVersion: lastStableFCV})); -checkFCV(adminDB, lastStableFCV); +assert.commandWorked(adminDB.runCommand({setFeatureCompatibilityVersion: lastLTSFCV})); +checkFCV(adminDB, lastLTSFCV); MongoRunner.stopMongod(conn); conn = MongoRunner.runMongod({dbpath: dbpath, binVersion: latest, noCleanData: true}); assert.neq(null, conn, "mongod was unable to start up with binary version=" + latest + - " and last-stable featureCompatibilityVersion"); + " and last-lts featureCompatibilityVersion"); adminDB = conn.getDB("admin"); -checkFCV(adminDB, lastStableFCV); +checkFCV(adminDB, lastLTSFCV); MongoRunner.stopMongod(conn); -// If you upgrade from 'lastStable' binary to 'latest' binary and have non-local databases, FCV -// remains 'lastStableFCV'. -conn = MongoRunner.runMongod({dbpath: dbpath, binVersion: lastStable}); +// If you upgrade from 'lastLTS' binary to 'latest' binary and have non-local databases, FCV +// remains 'lastLTSFCV'. +conn = MongoRunner.runMongod({dbpath: dbpath, binVersion: lastLTS}); assert.neq( - null, conn, "mongod was unable to start up with version=" + lastStable + " and no data files"); + null, conn, "mongod was unable to start up with version=" + lastLTS + " and no data files"); assert.commandWorked(conn.getDB("test").coll.insert({a: 5})); adminDB = conn.getDB("admin"); -checkFCV(adminDB, lastStableFCV); +checkFCV(adminDB, lastLTSFCV); MongoRunner.stopMongod(conn); conn = MongoRunner.runMongod({dbpath: dbpath, binVersion: latest, noCleanData: true}); assert.neq(null, conn, "mongod was unable to start up with binary version=" + latest + - " and featureCompatibilityVersion=" + lastStableFCV); + " and featureCompatibilityVersion=" + lastLTSFCV); adminDB = conn.getDB("admin"); -checkFCV(adminDB, lastStableFCV); +checkFCV(adminDB, lastLTSFCV); MongoRunner.stopMongod(conn); // A 'latest' binary mongod started with --shardsvr and clean data files defaults to -// 'lastStableFCV'. +// 'lastLTSFCV'. conn = MongoRunner.runMongod({dbpath: dbpath, binVersion: latest, shardsvr: ""}); assert.neq( null, conn, "mongod was unable to start up with version=" + latest + " and no data files"); adminDB = conn.getDB("admin"); -checkFCV(adminDB, lastStableFCV); +checkFCV(adminDB, lastLTSFCV); MongoRunner.stopMongod(conn); // @@ -165,18 +164,18 @@ rst.awaitReplication(); checkFCV(secondaryAdminDB, latestFCV); // featureCompatibilityVersion propagates to secondary. -assert.commandWorked(primaryAdminDB.runCommand({setFeatureCompatibilityVersion: lastStableFCV})); -checkFCV(primaryAdminDB, lastStableFCV); +assert.commandWorked(primaryAdminDB.runCommand({setFeatureCompatibilityVersion: lastLTSFCV})); +checkFCV(primaryAdminDB, lastLTSFCV); rst.awaitReplication(); -checkFCV(secondaryAdminDB, lastStableFCV); +checkFCV(secondaryAdminDB, lastLTSFCV); jsTestLog("EXPECTED TO FAIL: setFeatureCompatibilityVersion cannot be run on secondary"); assert.commandFailed(secondaryAdminDB.runCommand({setFeatureCompatibilityVersion: latestFCV})); rst.stopSet(); -// A 'latest' binary secondary with a 'lastStable' binary primary will have 'lastStableFCV' -rst = new ReplSetTest({nodes: [{binVersion: lastStable}, {binVersion: latest}]}); +// A 'latest' binary secondary with a 'lastLTS' binary primary will have 'lastLTSFCV' +rst = new ReplSetTest({nodes: [{binVersion: lastLTS}, {binVersion: latest}]}); rstConns = rst.startSet(); replSetConfig = rst.getReplSetConfig(); replSetConfig.members[1].priority = 0; @@ -184,11 +183,11 @@ replSetConfig.members[1].votes = 0; rst.initiate(replSetConfig); rst.waitForState(rstConns[0], ReplSetTest.State.PRIMARY); secondaryAdminDB = rst.getSecondary().getDB("admin"); -checkFCV(secondaryAdminDB, lastStableFCV); +checkFCV(secondaryAdminDB, lastLTSFCV); rst.stopSet(); -// Test that a 'lastStable' secondary can successfully perform initial sync from a 'latest' -// primary with 'lastStableFCV'. +// Test that a 'lastLTS' secondary can successfully perform initial sync from a 'latest' +// primary with 'lastLTSFCV'. rst = new ReplSetTest({ nodes: [{binVersion: latest}, {binVersion: latest, rsConfig: {priority: 0}}], settings: {chainingAllowed: false} @@ -198,7 +197,7 @@ rst.initiate(); let primary = rst.getPrimary(); primaryAdminDB = primary.getDB("admin"); -assert.commandWorked(primary.adminCommand({setFeatureCompatibilityVersion: lastStableFCV})); +assert.commandWorked(primary.adminCommand({setFeatureCompatibilityVersion: lastLTSFCV})); let secondary = rst.getSecondary(); @@ -211,32 +210,32 @@ assert.commandFailedWithCode(res, ErrorCodes.WriteConcernFailed); restartServerReplication(secondary); // Because the failed setFCV command left the primary in an intermediary state, complete the -// upgrade then reset back to the lastStable version. +// upgrade then reset back to the lastLTS version. assert.commandWorked(primary.adminCommand({setFeatureCompatibilityVersion: latestFCV})); -assert.commandWorked(primary.adminCommand({setFeatureCompatibilityVersion: lastStableFCV})); +assert.commandWorked(primary.adminCommand({setFeatureCompatibilityVersion: lastLTSFCV})); -secondary = rst.add({binVersion: lastStable}); +secondary = rst.add({binVersion: lastLTS}); secondaryAdminDB = secondary.getDB("admin"); // Rig the election so that the first node running latest version remains the primary after the -// 'lastStable' secondary is added to the replica set. +// 'lastLTS' secondary is added to the replica set. replSetConfig = rst.getReplSetConfig(); replSetConfig.version = 4; replSetConfig.members[2].priority = 0; reconfig(rst, replSetConfig); -// Verify that the 'lastStable' secondary successfully performed its initial sync. +// Verify that the 'lastLTS' secondary successfully performed its initial sync. assert.commandWorked( primaryAdminDB.getSiblingDB("test").coll.insert({awaitRepl: true}, {writeConcern: {w: 3}})); -// Test that a 'lastStable' secondary can no longer replicate from the primary after the FCV is +// Test that a 'lastLTS' secondary can no longer replicate from the primary after the FCV is // upgraded to 'latestFCV'. -// Note: the 'lastStable' secondary must stop replicating during the upgrade to ensure it has no +// Note: the 'lastLTS' secondary must stop replicating during the upgrade to ensure it has no // chance of seeing the 'upgrading to latest' message in the oplog, whereupon it would crash. stopServerReplication(secondary); assert.commandWorked(primary.adminCommand({setFeatureCompatibilityVersion: latestFCV})); restartServerReplication(secondary); -checkFCV(secondaryAdminDB, lastStableFCV); +checkFCV(secondaryAdminDB, lastLTSFCV); assert.commandWorked(primaryAdminDB.getSiblingDB("test").coll.insert({shouldReplicate: false})); assert.eq(secondaryAdminDB.getSiblingDB("test").coll.find({shouldReplicate: false}).itcount(), 0); rst.stopSet(); @@ -246,20 +245,20 @@ rst = new ReplSetTest({nodes: 2, nodeOpts: {binVersion: latest}}); rst.startSet(); rst.initiate(); -// Set FCV to 'lastStableFCV' so that a 'lastStable' binary node can join the set. +// Set FCV to 'lastLTSFCV' so that a 'lastLTS' binary node can join the set. primary = rst.getPrimary(); -assert.commandWorked(primary.adminCommand({setFeatureCompatibilityVersion: lastStableFCV})); +assert.commandWorked(primary.adminCommand({setFeatureCompatibilityVersion: lastLTSFCV})); rst.awaitReplication(); -// Add a 'lastStable' binary node to the set. -secondary = rst.add({binVersion: lastStable}); +// Add a 'lastLTS' binary node to the set. +secondary = rst.add({binVersion: lastLTS}); rst.reInitiate(); -// Ensure the 'lastStable' binary node succeeded its initial sync. +// Ensure the 'lastLTS' binary node succeeded its initial sync. assert.commandWorked(primary.getDB("test").coll.insert({awaitRepl: true}, {writeConcern: {w: 3}})); -// Run {setFCV: lastStableFCV}. This should be idempotent. -assert.commandWorked(primary.adminCommand({setFeatureCompatibilityVersion: lastStableFCV})); +// Run {setFCV: lastLTSFCV}. This should be idempotent. +assert.commandWorked(primary.adminCommand({setFeatureCompatibilityVersion: lastLTSFCV})); rst.awaitReplication(); // Ensure the secondary is still running. @@ -293,32 +292,31 @@ assert.commandFailed(mongosAdminDB.runCommand({setFeatureCompatibilityVersion: " jsTestLog("EXPECTED TO FAIL: setFeatureCompatibilityVersion rejects unknown fields on mongos"); assert.commandFailed( - mongosAdminDB.runCommand({setFeatureCompatibilityVersion: lastStableFCV, unknown: 1})); + mongosAdminDB.runCommand({setFeatureCompatibilityVersion: lastLTSFCV, unknown: 1})); jsTestLog( "EXPECTED TO FAIL: setFeatureCompatibilityVersion can only be run on the admin database on mongos"); -assert.commandFailed( - st.s.getDB("test").runCommand({setFeatureCompatibilityVersion: lastStableFCV})); +assert.commandFailed(st.s.getDB("test").runCommand({setFeatureCompatibilityVersion: lastLTSFCV})); jsTestLog("EXPECTED TO FAIL: featureCompatibilityVersion cannot be set via setParameter on mongos"); assert.commandFailed( - mongosAdminDB.runCommand({setParameter: 1, featureCompatibilityVersion: lastStableFCV})); + mongosAdminDB.runCommand({setParameter: 1, featureCompatibilityVersion: lastLTSFCV})); // Prevent the shard primary from receiving messages from the config server primary. When we try -// to set FCV to 'lastStableFCV', the command should fail because the shard cannot be contacted. +// to set FCV to 'lastLTSFCV', the command should fail because the shard cannot be contacted. st.rs0.getPrimary().discardMessagesFrom(st.configRS.getPrimary(), 1.0); jsTestLog( "EXPECTED TO FAIL: setFeatureCompatibilityVersion cannot be set because the shard primary is not reachable"); assert.commandFailed( - mongosAdminDB.runCommand({setFeatureCompatibilityVersion: lastStableFCV, maxTimeMS: 1000})); -checkFCV(configPrimaryAdminDB, lastStableFCV, lastStableFCV /* indicates downgrade in progress */); + mongosAdminDB.runCommand({setFeatureCompatibilityVersion: lastLTSFCV, maxTimeMS: 1000})); +checkFCV(configPrimaryAdminDB, lastLTSFCV, lastLTSFCV /* indicates downgrade in progress */); st.rs0.getPrimary().discardMessagesFrom(st.configRS.getPrimary(), 0.0); -// FCV can be set to 'lastStableFCV' on mongos. +// FCV can be set to 'lastLTSFCV' on mongos. // This is run through assert.soon() because we've just caused a network interruption // by discarding messages in the bridge. assert.soon(function() { - res = mongosAdminDB.runCommand({setFeatureCompatibilityVersion: lastStableFCV}); + res = mongosAdminDB.runCommand({setFeatureCompatibilityVersion: lastLTSFCV}); if (res.ok == 0) { print("Failed to set feature compatibility version: " + tojson(res)); return false; @@ -327,10 +325,10 @@ assert.soon(function() { }); // featureCompatibilityVersion propagates to config and shard. -checkFCV(configPrimaryAdminDB, lastStableFCV); -checkFCV(shardPrimaryAdminDB, lastStableFCV); +checkFCV(configPrimaryAdminDB, lastLTSFCV); +checkFCV(shardPrimaryAdminDB, lastLTSFCV); -// A 'latest' binary replica set started as a shard server defaults to 'lastStableFCV'. +// A 'latest' binary replica set started as a shard server defaults to 'lastLTSFCV'. let latestShard = new ReplSetTest({ name: "latestShard", nodes: [{binVersion: latest}, {binVersion: latest}], @@ -340,9 +338,9 @@ let latestShard = new ReplSetTest({ latestShard.startSet(); latestShard.initiate(); let latestShardPrimaryAdminDB = latestShard.getPrimary().getDB("admin"); -checkFCV(latestShardPrimaryAdminDB, lastStableFCV); +checkFCV(latestShardPrimaryAdminDB, lastLTSFCV); assert.commandWorked(mongosAdminDB.runCommand({addShard: latestShard.getURL()})); -checkFCV(latestShardPrimaryAdminDB, lastStableFCV); +checkFCV(latestShardPrimaryAdminDB, lastLTSFCV); // FCV can be set to 'latestFCV' on mongos. assert.commandWorked(mongosAdminDB.runCommand({setFeatureCompatibilityVersion: latestFCV})); @@ -355,27 +353,27 @@ checkFCV(latestShardPrimaryAdminDB, latestFCV); st.stop(); latestShard.stopSet(); -// Create cluster with a 'lastStable' binary mongos so that we can add 'lastStable' binary +// Create cluster with a 'lastLTS' binary mongos so that we can add 'lastLTS' binary // shards. -st = new ShardingTest({shards: 0, other: {mongosOptions: {binVersion: lastStable}}}); +st = new ShardingTest({shards: 0, other: {mongosOptions: {binVersion: lastLTS}}}); mongosAdminDB = st.s.getDB("admin"); configPrimaryAdminDB = st.configRS.getPrimary().getDB("admin"); -checkFCV(configPrimaryAdminDB, lastStableFCV); +checkFCV(configPrimaryAdminDB, lastLTSFCV); -// Adding a 'lastStable' binary shard to a cluster with 'lastStableFCV' succeeds. -let lastStableShard = new ReplSetTest({ - name: "lastStableShard", - nodes: [{binVersion: lastStable}, {binVersion: lastStable}], +// Adding a 'lastLTS' binary shard to a cluster with 'lastLTSFCV' succeeds. +let lastLTSShard = new ReplSetTest({ + name: "lastLTSShard", + nodes: [{binVersion: lastLTS}, {binVersion: lastLTS}], nodeOptions: {shardsvr: ""}, useHostName: true }); -lastStableShard.startSet(); -lastStableShard.initiate(); -assert.commandWorked(mongosAdminDB.runCommand({addShard: lastStableShard.getURL()})); -checkFCV(lastStableShard.getPrimary().getDB("admin"), lastStableFCV); +lastLTSShard.startSet(); +lastLTSShard.initiate(); +assert.commandWorked(mongosAdminDB.runCommand({addShard: lastLTSShard.getURL()})); +checkFCV(lastLTSShard.getPrimary().getDB("admin"), lastLTSFCV); -// call ShardingTest.stop before shutting down lastStableShard, so that the UUID check in -// ShardingTest.stop can talk to lastStableShard. +// call ShardingTest.stop before shutting down lastLTSShard, so that the UUID check in +// ShardingTest.stop can talk to lastLTSShard. st.stop(); -lastStableShard.stopSet(); +lastLTSShard.stopSet(); })(); diff --git a/jstests/multiVersion/genericSetFCVUsage/upgrade_downgrade_while_creating_collection.js b/jstests/multiVersion/genericSetFCVUsage/upgrade_downgrade_while_creating_collection.js index 4a7f2e3c318..c3fa52c95e0 100644 --- a/jstests/multiVersion/genericSetFCVUsage/upgrade_downgrade_while_creating_collection.js +++ b/jstests/multiVersion/genericSetFCVUsage/upgrade_downgrade_while_creating_collection.js @@ -19,7 +19,7 @@ rst.initiate(replSetConfig); const primary = rst.getPrimary(); const primaryDB = primary.getDB("test"); -for (let versions of [{from: lastStableFCV, to: latestFCV}, {from: latestFCV, to: lastStableFCV}]) { +for (let versions of [{from: lastLTSFCV, to: latestFCV}, {from: latestFCV, to: lastLTSFCV}]) { jsTestLog("Changing FeatureCompatibilityVersion from " + versions.from + " to " + versions.to + " while creating a collection"); assert.commandWorked(primaryDB.adminCommand({setFeatureCompatibilityVersion: versions.from})); diff --git a/jstests/multiVersion/index_signature_fcv.js b/jstests/multiVersion/index_signature_fcv.js index a97dfb91cff..745fc000e34 100644 --- a/jstests/multiVersion/index_signature_fcv.js +++ b/jstests/multiVersion/index_signature_fcv.js @@ -76,7 +76,7 @@ coll = testDB.test; assertIndexedQuery({a: -1}, 0); // Test that these indexes are retained and can be used by the planner when we downgrade to FCV 4.4. -testDB.adminCommand({setFeatureCompatibilityVersion: lastStableFCV}); +testDB.adminCommand({setFeatureCompatibilityVersion: lastLTSFCV}); assertIndexedQuery({a: 1}, 0); assertIndexedQuery({a: 11}, 1); assertIndexedQuery({a: 101}, 2); @@ -99,7 +99,7 @@ const cmdRes = assert.commandWorked( assert.eq(cmdRes.numIndexesBefore, cmdRes.numIndexesAfter); // Test that downgrading to binary 4.4 with overlapping partial indexes present does not fassert. -rst.upgradeSet({binVersion: "last-stable"}); +rst.upgradeSet({binVersion: "last-lts"}); testDB = rst.getPrimary().getDB(jsTestName()); coll = testDB.test; diff --git a/jstests/multiVersion/initialize_from_old_node.js b/jstests/multiVersion/initialize_from_old_node.js index ea89a9c0adc..e45a482ab00 100644 --- a/jstests/multiVersion/initialize_from_old_node.js +++ b/jstests/multiVersion/initialize_from_old_node.js @@ -6,7 +6,7 @@ (function() { "use strict"; var name = "initialize_from_old"; -var oldVersion = 'last-stable'; +var oldVersion = 'last-lts'; var newVersion = 'latest'; var nodes = { n0: {binVersion: oldVersion}, diff --git a/jstests/multiVersion/keystring_index.js b/jstests/multiVersion/keystring_index.js index b42544daf11..283eac5a4bd 100644 --- a/jstests/multiVersion/keystring_index.js +++ b/jstests/multiVersion/keystring_index.js @@ -1,13 +1,13 @@ /** - * Regression test that ensure there have been no KeyString encoding changes between last-stable the + * Regression test that ensure there have been no KeyString encoding changes between last-lts the * current version. Has the following procedure: - * - Start mongod with the last-stable version. + * - Start mongod with the last-lts version. * - For each index type, create a new collection, insert documents, and create an index. * - Shutdown mongod and restart with the latest version. * - Run validate. * - Drop all collections. * - Recreate all indexes. - * - Shuwdown mongod and restart with the last-stable version. + * - Shuwdown mongod and restart with the last-lts version. * - Run validate. * * The following index types are tested: @@ -126,17 +126,17 @@ const defaultOptions = { const kCollectionPrefix = 'testColl'; -let mongodOptionsLastStable = Object.extend({binVersion: 'last-stable'}, defaultOptions); +let mongodOptionsLastLTS = Object.extend({binVersion: 'last-lts'}, defaultOptions); let mongodOptionsCurrent = Object.extend({binVersion: 'latest'}, defaultOptions); -// We will first start up a last-stable version mongod, populate the database, upgrade, then +// We will first start up a last-lts version mongod, populate the database, upgrade, then // validate. -jsTestLog("Starting version: last-stable"); -let conn = MongoRunner.runMongod(mongodOptionsLastStable); +jsTestLog("Starting version: last-lts"); +let conn = MongoRunner.runMongod(mongodOptionsLastLTS); assert.neq( - null, conn, 'mongod was unable able to start with version ' + tojson(mongodOptionsLastStable)); + null, conn, 'mongod was unable able to start with version ' + tojson(mongodOptionsLastLTS)); let testDb = conn.getDB('test'); @@ -151,9 +151,8 @@ assert.neq(null, conn, 'mongod was unable to start with the latest version'); testDb = conn.getDB('test'); assert.gt(testDb.getCollectionInfos().length, 0); -jsTestLog( - "Validating indexes created with a 'last-stable' version binary using a 'latest' version " + - "binary"); +jsTestLog("Validating indexes created with a 'last-lts' version binary using a 'latest' version " + + "binary"); // Validate all the indexes. assert.commandWorked(validateCollections(testDb, {full: true})); @@ -163,15 +162,15 @@ dropAllUserCollections(testDb); populateDb(testDb); MongoRunner.stopMongod(conn); -conn = MongoRunner.runMongod(mongodOptionsLastStable); +conn = MongoRunner.runMongod(mongodOptionsLastLTS); assert.neq( - null, conn, 'mongod was unable able to start with version ' + tojson(mongodOptionsLastStable)); + null, conn, 'mongod was unable able to start with version ' + tojson(mongodOptionsLastLTS)); testDb = conn.getDB('test'); assert.gt(testDb.getCollectionInfos().length, 0); jsTestLog( - "Validating indexes created with 'latest' version binary using a 'last-stable' version binary"); + "Validating indexes created with 'latest' version binary using a 'last-lts' version binary"); assert.commandWorked(validateCollections(testDb, {full: true})); MongoRunner.stopMongod(conn); diff --git a/jstests/multiVersion/libs/multi_rs.js b/jstests/multiVersion/libs/multi_rs.js index c344b1d9393..82aaf083612 100644 --- a/jstests/multiVersion/libs/multi_rs.js +++ b/jstests/multiVersion/libs/multi_rs.js @@ -54,7 +54,7 @@ ReplSetTest.prototype.upgradeSecondaries = function(primary, options, user, pwd) ReplSetTest.prototype.upgradeArbiters = function(primary, options, user, pwd) { // We don't support downgrading data files for arbiters. We need to instead delete the dbpath. const oldStartClean = {startClean: (options && !!options["startClean"])}; - if (options && options.binVersion == "last-stable") { + if (options && options.binVersion == "last-lts") { options["startClean"] = true; } this.upgradeMembers(primary, this.getArbiters(), options, user, pwd); diff --git a/jstests/multiVersion/migration_between_mixed_version_mongods.js b/jstests/multiVersion/migration_between_mixed_version_mongods.js index ef9b7623f6b..b855c65f02d 100644 --- a/jstests/multiVersion/migration_between_mixed_version_mongods.js +++ b/jstests/multiVersion/migration_between_mixed_version_mongods.js @@ -1,6 +1,6 @@ // -// Testing migrations between latest and last-stable mongod versions, where the -// donor is the latest version and the recipient the last-stable, and vice versa. +// 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. // @@ -14,23 +14,23 @@ load("./jstests/multiVersion/libs/verify_versions.js"); var options = { shards: [ - {binVersion: "last-stable"}, - {binVersion: "last-stable"}, + {binVersion: "last-lts"}, + {binVersion: "last-lts"}, {binVersion: "latest"}, {binVersion: "latest"} ], mongos: 1, - other: {mongosOptions: {binVersion: "last-stable"}} + other: {mongosOptions: {binVersion: "last-lts"}} }; var st = new ShardingTest(options); st.stopBalancer(); -assert.binVersion(st.shard0, "last-stable"); -assert.binVersion(st.shard1, "last-stable"); +assert.binVersion(st.shard0, "last-lts"); +assert.binVersion(st.shard1, "last-lts"); assert.binVersion(st.shard2, "latest"); assert.binVersion(st.shard3, "latest"); -assert.binVersion(st.s0, "last-stable"); +assert.binVersion(st.s0, "last-lts"); var mongos = st.s0, admin = mongos.getDB('admin'), shards = mongos.getCollection('config.shards').find().toArray(), @@ -71,8 +71,8 @@ assert.eq(2, barColl.count()); /** * Perform two migrations: - * shard0 (last-stable) -> foo chunk -> shard2 (latest) - * shard3 (latest) -> bar chunk -> shard1 (last-stable) + * shard0 (last-lts) -> foo chunk -> shard2 (latest) + * shard3 (latest) -> bar chunk -> shard1 (last-lts) */ assert.commandWorked( @@ -82,27 +82,27 @@ assert.commandWorked( assert.eq(1, fooRecipientColl.count(), "Foo collection migration failed. " + - "Last-stable -> latest mongod version migration failure."); + "Last-lts -> latest mongod version migration failure."); assert.eq(1, fooDonorColl.count(), "Foo donor lost its document. " + - "Last-stable -> latest mongod version migration failure."); + "Last-lts -> latest mongod version migration failure."); assert.eq(2, fooColl.count(), "Incorrect number of documents in foo collection. " + - "Last-stable -> latest mongod version migration failure."); + "Last-lts -> latest mongod version migration failure."); assert.eq(1, barRecipientColl.count(), "Bar collection migration failed. " + - "Latest -> last-stable mongod version migration failure."); + "Latest -> last-lts mongod version migration failure."); assert.eq(1, barDonorColl.count(), "Bar donor lost its document. " + - "Latest -> last-stable mongod version migration failure."); + "Latest -> last-lts mongod version migration failure."); assert.eq(2, barColl.count(), "Incorrect number of documents in bar collection. " + - "Latest -> last-stable mongod version migration failure."); + "Latest -> last-lts mongod version migration failure."); st.stop(); })(); diff --git a/jstests/multiVersion/migration_with_mixed_version_shards_and_disable_resumable_range_deleter.js b/jstests/multiVersion/migration_with_mixed_version_shards_and_disable_resumable_range_deleter.js index ebf4d7941a3..d7b3201177b 100644 --- a/jstests/multiVersion/migration_with_mixed_version_shards_and_disable_resumable_range_deleter.js +++ b/jstests/multiVersion/migration_with_mixed_version_shards_and_disable_resumable_range_deleter.js @@ -32,8 +32,8 @@ function setDisableResumableRangeDeleter(value, rs) { } const st = new ShardingTest({ - shards: {rs0: {nodes: [{binVersion: "latest"}]}, rs1: {nodes: [{binVersion: "last-stable"}]}}, - other: {mongosOptions: {binVersion: "last-stable"}} + shards: {rs0: {nodes: [{binVersion: "latest"}]}, rs1: {nodes: [{binVersion: "last-lts"}]}}, + other: {mongosOptions: {binVersion: "last-lts"}} }); assert.commandWorked(st.s.adminCommand({enableSharding: dbName})); assert.commandWorked(st.s.adminCommand({movePrimary: dbName, to: st.shard0.shardName})); diff --git a/jstests/multiVersion/migrations_with_mixed_fcv.js b/jstests/multiVersion/migrations_with_mixed_fcv.js index da9fd28b214..266d29d0d05 100644 --- a/jstests/multiVersion/migrations_with_mixed_fcv.js +++ b/jstests/multiVersion/migrations_with_mixed_fcv.js @@ -38,9 +38,9 @@ function testMigrationFailsWhileUpgradingSource() { let st = setup(); - // Ensure last-stable FCV on shard0. - assert.commandWorked(st.shard0.adminCommand({setFeatureCompatibilityVersion: lastStableFCV})); - checkFCV(st.shard0.getDB("admin"), lastStableFCV); + // Ensure last-lts FCV on shard0. + assert.commandWorked(st.shard0.adminCommand({setFeatureCompatibilityVersion: lastLTSFCV})); + checkFCV(st.shard0.getDB("admin"), lastLTSFCV); checkFCV(st.shard1.getDB("admin"), latestFCV); // Fail while upgrading. @@ -74,7 +74,7 @@ function testMigrationFailsWhileDowngradingSource() { let failpoint = configureFailPoint(shard0Primary, 'failDowngrading'); // Downgrade source. - assert.commandFailed(st.shard0.adminCommand({setFeatureCompatibilityVersion: lastStableFCV})); + assert.commandFailed(st.shard0.adminCommand({setFeatureCompatibilityVersion: lastLTSFCV})); // Move chunk [50, inf) to shard1 should fail. assert.commandFailedWithCode( @@ -91,11 +91,11 @@ function testMigrationFailsWhileUpgradingDestination() { let st = setup(); - // Ensure last-stable FCV on shard1. + // Ensure last-lts FCV on shard1. assert.commandWorked( - st.shard1.getDB("admin").runCommand({setFeatureCompatibilityVersion: lastStableFCV})); + st.shard1.getDB("admin").runCommand({setFeatureCompatibilityVersion: lastLTSFCV})); checkFCV(st.shard0.getDB("admin"), latestFCV); - checkFCV(st.shard1.getDB("admin"), lastStableFCV); + checkFCV(st.shard1.getDB("admin"), lastLTSFCV); // Fail while upgrading. let shard1Primary = st.rs1.getPrimary(); @@ -128,7 +128,7 @@ function testMigrationFailsWhileDowngradingDestination() { let failpoint = configureFailPoint(shard1Primary, 'failDowngrading'); // Downgrade destination. - assert.commandFailed(st.shard1.adminCommand({setFeatureCompatibilityVersion: lastStableFCV})); + assert.commandFailed(st.shard1.adminCommand({setFeatureCompatibilityVersion: lastLTSFCV})); // Move chunk [50, inf) to shard1 should fail. assert.commandFailedWithCode( @@ -140,14 +140,14 @@ function testMigrationFailsWhileDowngradingDestination() { st.stop(); } -function testMigrateFromLastStableToLastStable() { - jsTestLog("Test last-stable FCV -> latest FCV"); +function testMigrateFromLastLTSToLastLTS() { + jsTestLog("Test last-lts FCV -> last-lts FCV"); let st = setup(); assert.commandWorked( - st.s.getDB("admin").runCommand({setFeatureCompatibilityVersion: lastStableFCV})); - checkFCV(st.shard0.getDB("admin"), lastStableFCV); - checkFCV(st.shard1.getDB("admin"), lastStableFCV); + st.s.getDB("admin").runCommand({setFeatureCompatibilityVersion: lastLTSFCV})); + checkFCV(st.shard0.getDB("admin"), lastLTSFCV); + checkFCV(st.shard1.getDB("admin"), lastLTSFCV); // Move chunk [50, inf) to shard1. assert.commandWorked( @@ -156,14 +156,14 @@ function testMigrateFromLastStableToLastStable() { st.stop(); } -function testMigrateFromLatestToLastStable() { - jsTestLog("Test latest FCV -> last-stable FCV"); +function testMigrateFromLatestToLastLTS() { + jsTestLog("Test latest FCV -> last-lts FCV"); let st = setup(); assert.commandWorked( - st.shard1.getDB("admin").runCommand({setFeatureCompatibilityVersion: lastStableFCV})); + st.shard1.getDB("admin").runCommand({setFeatureCompatibilityVersion: lastLTSFCV})); checkFCV(st.shard0.getDB("admin"), latestFCV); - checkFCV(st.shard1.getDB("admin"), lastStableFCV); + checkFCV(st.shard1.getDB("admin"), lastLTSFCV); // Move chunk [50, inf) to shard1. assert.commandWorked( @@ -172,13 +172,13 @@ function testMigrateFromLatestToLastStable() { st.stop(); } -function testMigrateFromLastStableToLatest() { - jsTestLog("Test last-stable FCV -> latest FCV fail"); +function testMigrateFromLastLTSToLatest() { + jsTestLog("Test last-lts FCV -> latest FCV fail"); let st = setup(); assert.commandWorked( - st.shard0.getDB("admin").runCommand({setFeatureCompatibilityVersion: lastStableFCV})); - checkFCV(st.shard0.getDB("admin"), lastStableFCV); + st.shard0.getDB("admin").runCommand({setFeatureCompatibilityVersion: lastLTSFCV})); + checkFCV(st.shard0.getDB("admin"), lastLTSFCV); checkFCV(st.shard1.getDB("admin"), latestFCV); // Move chunk [50, inf) to shard1 should fail. Since shard1 is running the latest FCV, it @@ -209,12 +209,12 @@ function testSetFCVBlocksWhileMigratingChunk() { jsTestLog("Testing that setFCV blocks while migrating a chunk"); let st = setup(); - // Set config and shards to last-stable FCV + // Set config and shards to last-lts FCV assert.commandWorked( - st.s.getDB("admin").runCommand({setFeatureCompatibilityVersion: lastStableFCV})); + st.s.getDB("admin").runCommand({setFeatureCompatibilityVersion: lastLTSFCV})); - checkFCV(st.shard0.getDB("admin"), lastStableFCV); - checkFCV(st.shard1.getDB("admin"), lastStableFCV); + checkFCV(st.shard0.getDB("admin"), lastLTSFCV); + checkFCV(st.shard1.getDB("admin"), lastLTSFCV); // Start migration and block with failpoint. let shard0Primary = st.rs0.getPrimary(); @@ -242,8 +242,8 @@ testMigrationFailsWhileDowngradingSource(); testMigrationFailsWhileUpgradingDestination(); testMigrationFailsWhileDowngradingDestination(); -testMigrateFromLastStableToLastStable(); -testMigrateFromLatestToLastStable(); -testMigrateFromLastStableToLatest(); +testMigrateFromLastLTSToLastLTS(); +testMigrateFromLatestToLastLTS(); +testMigrateFromLastLTSToLatest(); testSetFCVBlocksWhileMigratingChunk(); })(); diff --git a/jstests/multiVersion/minor_version_tags_new_old_new.js b/jstests/multiVersion/minor_version_tags_new_old_new.js index eaae74c8810..283380637ca 100644 --- a/jstests/multiVersion/minor_version_tags_new_old_new.js +++ b/jstests/multiVersion/minor_version_tags_new_old_new.js @@ -3,7 +3,7 @@ load("jstests/replsets/libs/tags.js"); -var oldVersion = "last-stable"; +var oldVersion = "last-lts"; var newVersion = "latest"; let nodes = [ {binVersion: newVersion}, diff --git a/jstests/multiVersion/minor_version_tags_old_new_old.js b/jstests/multiVersion/minor_version_tags_old_new_old.js index 22ce71964f9..02649e9ed87 100644 --- a/jstests/multiVersion/minor_version_tags_old_new_old.js +++ b/jstests/multiVersion/minor_version_tags_old_new_old.js @@ -3,7 +3,7 @@ load("jstests/replsets/libs/tags.js"); -var oldVersion = "last-stable"; +var oldVersion = "last-lts"; var newVersion = "latest"; let nodes = [ {binVersion: oldVersion}, diff --git a/jstests/multiVersion/minor_version_upgrade_replset.js b/jstests/multiVersion/minor_version_upgrade_replset.js index fb98e74f70e..21676767ebd 100644 --- a/jstests/multiVersion/minor_version_upgrade_replset.js +++ b/jstests/multiVersion/minor_version_upgrade_replset.js @@ -5,7 +5,7 @@ load('./jstests/multiVersion/libs/multi_rs.js'); load('./jstests/libs/test_background_ops.js'); -var oldVersion = "last-stable"; +var oldVersion = "last-lts"; var nodes = { n1: {binVersion: oldVersion}, diff --git a/jstests/multiVersion/mixed_replica_set_with_latest_primary.js b/jstests/multiVersion/mixed_replica_set_with_latest_primary.js index dd5c3821ccb..546ae94e95b 100644 --- a/jstests/multiVersion/mixed_replica_set_with_latest_primary.js +++ b/jstests/multiVersion/mixed_replica_set_with_latest_primary.js @@ -6,13 +6,13 @@ "use strict"; load('./jstests/multiVersion/libs/multi_rs.js'); -const lastStableVersion = "last-stable"; +const lastLTSVersion = "last-lts"; const latestVersion = "latest"; const nodes = { 0: {binVersion: latestVersion}, - 1: {binVersion: lastStableVersion}, - 2: {binVersion: lastStableVersion} + 1: {binVersion: lastLTSVersion}, + 2: {binVersion: lastLTSVersion} }; const rst = new ReplSetTest({nodes: nodes}); @@ -21,13 +21,13 @@ rst.startSet(); rst.initiate(); const latestBinVersion = MongoRunner.getBinVersionFor(latestVersion); -const lastStableBinVersion = MongoRunner.getBinVersionFor(lastStableVersion); +const lastLTSBinVersion = MongoRunner.getBinVersionFor(lastLTSVersion); for (let i = 0; i < rst.nodes.length; i++) { const admin = rst.nodes[i].getDB("admin"); const serverStatus = admin.serverStatus(); const expectedVersion = - nodes[i]["binVersion"] === latestVersion ? latestBinVersion : lastStableBinVersion; + nodes[i]["binVersion"] === latestVersion ? latestBinVersion : lastLTSBinVersion; const actualVersion = serverStatus["version"]; assert(MongoRunner.areBinVersionsTheSame(actualVersion, expectedVersion)); } diff --git a/jstests/multiVersion/pending_chunk.js b/jstests/multiVersion/pending_chunk.js index 5d8b938e535..942d8d3b37b 100644 --- a/jstests/multiVersion/pending_chunk.js +++ b/jstests/multiVersion/pending_chunk.js @@ -13,8 +13,7 @@ var coll = mongos.getCollection('foo.bar'); var ns = coll.getFullName(); var dbName = coll.getDB().getName(); -assert.commandWorked( - st.s.getDB("admin").runCommand({setFeatureCompatibilityVersion: lastStableFCV})); +assert.commandWorked(st.s.getDB("admin").runCommand({setFeatureCompatibilityVersion: lastLTSFCV})); assert.commandWorked(admin.runCommand({enableSharding: dbName})); printjson(admin.runCommand({movePrimary: dbName, to: st.shard0.shardName})); diff --git a/jstests/multiVersion/rename_across_dbs_last_stable_secondary.js b/jstests/multiVersion/rename_across_dbs_last_lts_primary.js index 1e32fbe4fbd..c6c5aad3fc7 100644 --- a/jstests/multiVersion/rename_across_dbs_last_stable_secondary.js +++ b/jstests/multiVersion/rename_across_dbs_last_lts_primary.js @@ -3,10 +3,10 @@ load("jstests/replsets/libs/rename_across_dbs.js"); -const nodes = [{binVersion: 'latest'}, {binVersion: 'last-stable'}, {}]; +const nodes = [{binVersion: 'last-lts'}, {binVersion: 'latest'}, {}]; const options = { nodes: nodes, - setFeatureCompatibilityVersion: lastStableFCV, + setFeatureCompatibilityVersion: lastLTSFCV, }; new RenameAcrossDatabasesTest(options).run(); diff --git a/jstests/multiVersion/rename_across_dbs_last_stable_primary_drop_target.js b/jstests/multiVersion/rename_across_dbs_last_lts_primary_drop_target.js index acaff7af4ff..728bc7302fd 100644 --- a/jstests/multiVersion/rename_across_dbs_last_stable_primary_drop_target.js +++ b/jstests/multiVersion/rename_across_dbs_last_lts_primary_drop_target.js @@ -3,10 +3,10 @@ load("jstests/replsets/libs/rename_across_dbs.js"); -const nodes = [{binVersion: 'last-stable'}, {binVersion: 'latest'}, {}]; +const nodes = [{binVersion: 'last-lts'}, {binVersion: 'latest'}, {}]; const options = { nodes: nodes, - setFeatureCompatibilityVersion: lastStableFCV, + setFeatureCompatibilityVersion: lastLTSFCV, dropTarget: true, }; diff --git a/jstests/multiVersion/rename_across_dbs_last_stable_primary.js b/jstests/multiVersion/rename_across_dbs_last_lts_secondary.js index 11dcd2ee9f3..78b86afa86d 100644 --- a/jstests/multiVersion/rename_across_dbs_last_stable_primary.js +++ b/jstests/multiVersion/rename_across_dbs_last_lts_secondary.js @@ -3,10 +3,10 @@ load("jstests/replsets/libs/rename_across_dbs.js"); -const nodes = [{binVersion: 'last-stable'}, {binVersion: 'latest'}, {}]; +const nodes = [{binVersion: 'latest'}, {binVersion: 'last-lts'}, {}]; const options = { nodes: nodes, - setFeatureCompatibilityVersion: lastStableFCV, + setFeatureCompatibilityVersion: lastLTSFCV, }; new RenameAcrossDatabasesTest(options).run(); diff --git a/jstests/multiVersion/rename_across_dbs_last_stable_secondary_drop_target.js b/jstests/multiVersion/rename_across_dbs_last_lts_secondary_drop_target.js index fea67053891..d9750444972 100644 --- a/jstests/multiVersion/rename_across_dbs_last_stable_secondary_drop_target.js +++ b/jstests/multiVersion/rename_across_dbs_last_lts_secondary_drop_target.js @@ -3,10 +3,10 @@ load("jstests/replsets/libs/rename_across_dbs.js"); -const nodes = [{binVersion: 'latest'}, {binVersion: 'last-stable'}, {}]; +const nodes = [{binVersion: 'latest'}, {binVersion: 'last-lts'}, {}]; const options = { nodes: nodes, - setFeatureCompatibilityVersion: lastStableFCV, + setFeatureCompatibilityVersion: lastLTSFCV, dropTarget: true, }; diff --git a/jstests/multiVersion/skip_level_upgrade.js b/jstests/multiVersion/skip_level_upgrade.js index 436428ac011..d0ea00222aa 100644 --- a/jstests/multiVersion/skip_level_upgrade.js +++ b/jstests/multiVersion/skip_level_upgrade.js @@ -2,7 +2,7 @@ * Tests that skip level upgrades from old binary versions to the latest binary version are both * not successful and do not corrupt anything to prevent correct binary version start up. * - * For each binary version older than last-stable: + * For each binary version older than last-lts: * - Start a clean node of that version * - Create a new collection. * - Insert a document into the new collection. @@ -27,7 +27,7 @@ const defaultOptions = { noCleanData: true, }; -// This lists all binary versions older than the last-stable version. +// This lists all binary versions older than the last-lts version. // TODO SERVER-26792: In the future, we should have a common place from which both the // multiversion setup procedure and this test get information about supported major releases. const versions = [ diff --git a/jstests/multiVersion/upgrade_downgrade_cluster.js b/jstests/multiVersion/upgrade_downgrade_cluster.js index f699d3df981..2addbdad39c 100644 --- a/jstests/multiVersion/upgrade_downgrade_cluster.js +++ b/jstests/multiVersion/upgrade_downgrade_cluster.js @@ -1,6 +1,6 @@ /** * Tests that CRUD and aggregation commands through the mongos continue to work as expected on both - * sharded and unsharded collection at each step of cluster upgrade from last-stable to latest. + * sharded and unsharded collection at each step of cluster upgrade from last-lts to latest. */ (function() { "use strict"; @@ -37,11 +37,11 @@ var st = new ShardingTest({ shards: 2, mongos: 1, other: { - mongosOptions: {binVersion: "last-stable"}, - configOptions: {binVersion: "last-stable"}, - shardOptions: {binVersion: "last-stable"}, + mongosOptions: {binVersion: "last-lts"}, + configOptions: {binVersion: "last-lts"}, + shardOptions: {binVersion: "last-lts"}, - rsOptions: {binVersion: "last-stable"}, + rsOptions: {binVersion: "last-lts"}, rs: true, } }); @@ -120,7 +120,7 @@ assert.eq(version.excluding, undefined); // Downgrade back jsTest.log('downgrading mongos servers'); -st.upgradeCluster("last-stable", {upgradeConfigs: false, upgradeShards: false}); +st.upgradeCluster("last-lts", {upgradeConfigs: false, upgradeShards: false}); testCRUDAndAgg(st.s.getDB('unsharded')); testCRUDAndAgg(st.s.getDB('sharded')); @@ -132,7 +132,7 @@ testCRUDAndAgg(st.s.getDB('unsharded')); testCRUDAndAgg(st.s.getDB('sharded')); jsTest.log('downgrading shard servers'); -st.upgradeCluster("last-stable", {upgradeMongos: false, upgradeConfigs: false}); +st.upgradeCluster("last-lts", {upgradeMongos: false, upgradeConfigs: false}); awaitRSClientHosts(st.s, st.rs0.getPrimary(), {ok: true, ismaster: true}); awaitRSClientHosts(st.s, st.rs1.getPrimary(), {ok: true, ismaster: true}); @@ -147,7 +147,7 @@ testCRUDAndAgg(st.s.getDB('unsharded')); testCRUDAndAgg(st.s.getDB('sharded')); jsTest.log('downgrading config servers'); -st.upgradeCluster("last-stable", {upgradeMongos: false, upgradeShards: false}); +st.upgradeCluster("last-lts", {upgradeMongos: false, upgradeShards: false}); testCRUDAndAgg(st.s.getDB('unsharded')); testCRUDAndAgg(st.s.getDB('sharded')); diff --git a/jstests/multiVersion/verify_versions_test.js b/jstests/multiVersion/verify_versions_test.js index 535bdd0c142..f1a574c9b63 100644 --- a/jstests/multiVersion/verify_versions_test.js +++ b/jstests/multiVersion/verify_versions_test.js @@ -2,7 +2,7 @@ * These tests check the version comparison logic in the multiversion test support code. * * In particular, it tests that the shell version (returned by version()) compares equal to - * "latest", not equal to "last-stable", and x.y compares equal to x.y.z, but that x.w does + * "latest", not equal to "last-lts", and x.y compares equal to x.y.z, but that x.w does * not. */ @@ -45,7 +45,7 @@ function assertBinVersionComparesEqual(v1, v2) { assertBinVersionsEqual("4.5", version()); assertBinVersionComparesEqual("4.5", version()); -// "latest" is the same version as the shell, "last-stable" is not. +// "latest" is the same version as the shell, "last-lts" is not. assertBinVersionsEqual("latest", version()); assertBinVersionsEqual("", "latest"); assertBinVersionsEqual("", version()); @@ -54,11 +54,11 @@ assertBinVersionComparesEqual("latest", version()); assertBinVersionComparesEqual("", "latest"); assertBinVersionComparesEqual("", version()); -assertBinVersionsNotEqual("latest", "last-stable"); -assertBinVersionsNotEqual("last-stable", version()); +assertBinVersionsNotEqual("latest", "last-lts"); +assertBinVersionsNotEqual("last-lts", version()); -assertBinVersionComparesHigher("latest", "last-stable"); -assertBinVersionComparesLower("last-stable", version()); +assertBinVersionComparesHigher("latest", "last-lts"); +assertBinVersionComparesLower("last-lts", version()); // 3.2 means 3.2.z for any value of z. It does not mean 3.0 or 3.0.w. assertBinVersionsEqual("3.2", "3.2.4"); diff --git a/jstests/noPassthrough/apply_ops_mode.js b/jstests/noPassthrough/apply_ops_mode.js index bc7d15d3424..9f069e2eca8 100644 --- a/jstests/noPassthrough/apply_ops_mode.js +++ b/jstests/noPassthrough/apply_ops_mode.js @@ -61,7 +61,7 @@ const systemVersionColl = adminDB.getCollection("system.version"); var updateOp = { op: 'u', ns: systemVersionColl.getFullName(), - o: {_id: "featureCompatibilityVersion", version: lastStableFCV}, + o: {_id: "featureCompatibilityVersion", version: lastLTSFCV}, o2: {_id: "featureCompatibilityVersion"} }; assert.commandFailed(db.adminCommand({applyOps: [updateOp], oplogApplicationMode: "InitialSync"})); diff --git a/jstests/noPassthrough/feature_compatibility_version.js b/jstests/noPassthrough/feature_compatibility_version.js index 47f992f3b22..ade4d8b4fe7 100644 --- a/jstests/noPassthrough/feature_compatibility_version.js +++ b/jstests/noPassthrough/feature_compatibility_version.js @@ -15,30 +15,29 @@ checkFCV(adminDB, latestFCV); // Updating the featureCompatibilityVersion document changes the featureCompatibilityVersion // server parameter. assert.commandWorked(adminDB.system.version.update({_id: "featureCompatibilityVersion"}, - {$set: {version: lastStableFCV}})); -checkFCV(adminDB, lastStableFCV); + {$set: {version: lastLTSFCV}})); +checkFCV(adminDB, lastLTSFCV); -assert.commandWorked( - adminDB.system.version.update({_id: "featureCompatibilityVersion"}, - {$set: {version: lastStableFCV, targetVersion: latestFCV}})); -checkFCV(adminDB, lastStableFCV, latestFCV); +assert.commandWorked(adminDB.system.version.update( + {_id: "featureCompatibilityVersion"}, {$set: {version: lastLTSFCV, targetVersion: latestFCV}})); +checkFCV(adminDB, lastLTSFCV, latestFCV); assert.commandWorked(adminDB.system.version.update( {_id: "featureCompatibilityVersion"}, - {$set: {version: lastStableFCV, targetVersion: lastStableFCV, previousVersion: latestFCV}})); -checkFCV(adminDB, lastStableFCV, lastStableFCV); + {$set: {version: lastLTSFCV, targetVersion: lastLTSFCV, previousVersion: latestFCV}})); +checkFCV(adminDB, lastLTSFCV, lastLTSFCV); // When present, "previousVersion" will always be the latestFCV. assert.writeErrorWithCode(adminDB.system.version.update({_id: "featureCompatibilityVersion"}, - {$set: {previousVersion: lastStableFCV}}), + {$set: {previousVersion: lastLTSFCV}}), 4926901); -checkFCV(adminDB, lastStableFCV, lastStableFCV); +checkFCV(adminDB, lastLTSFCV, lastLTSFCV); // Downgrading FCV must have a 'previousVersion' field. assert.writeErrorWithCode(adminDB.system.version.update({_id: "featureCompatibilityVersion"}, {$unset: {previousVersion: true}}), 4926902); -checkFCV(adminDB, lastStableFCV, lastStableFCV); +checkFCV(adminDB, lastLTSFCV, lastLTSFCV); assert.commandWorked(adminDB.system.version.update( {_id: "featureCompatibilityVersion"}, @@ -53,7 +52,7 @@ checkFCV(adminDB, latestFCV); // Updating the featureCompatibilityVersion document with an invalid targetVersion fails. assert.writeErrorWithCode(adminDB.system.version.update({_id: "featureCompatibilityVersion"}, - {$set: {targetVersion: lastStableFCV}}), + {$set: {targetVersion: lastLTSFCV}}), 4926904); checkFCV(adminDB, latestFCV); diff --git a/jstests/noPassthrough/index_downgrade_fcv.js b/jstests/noPassthrough/index_downgrade_fcv.js index 1f3d0e4e90d..e2b6f565a34 100644 --- a/jstests/noPassthrough/index_downgrade_fcv.js +++ b/jstests/noPassthrough/index_downgrade_fcv.js @@ -36,7 +36,7 @@ IndexBuildTest.waitForIndexBuildToScanCollection(testDB, coll.getName(), 'a_1'); // Downgrade the primary using the setFeatureCompatibilityVersion command. try { - assert.commandWorked(primary.adminCommand({setFeatureCompatibilityVersion: lastStableFCV})); + assert.commandWorked(primary.adminCommand({setFeatureCompatibilityVersion: lastLTSFCV})); } finally { IndexBuildTest.resumeIndexBuilds(primary); } @@ -49,7 +49,7 @@ IndexBuildTest.assertIndexes(coll, 2, ['_id_', 'a_1']); // This confirms that the downgrade command will complete successfully after the index build has // completed. -assert.commandWorked(primary.adminCommand({setFeatureCompatibilityVersion: lastStableFCV})); +assert.commandWorked(primary.adminCommand({setFeatureCompatibilityVersion: lastLTSFCV})); rst.stopSet(); })(); diff --git a/jstests/noPassthrough/resumable_index_build_downgrade.js b/jstests/noPassthrough/resumable_index_build_downgrade.js index 51e985c718a..7c0896e6480 100644 --- a/jstests/noPassthrough/resumable_index_build_downgrade.js +++ b/jstests/noPassthrough/resumable_index_build_downgrade.js @@ -21,7 +21,7 @@ const testDB = primary.getDB("test"); const coll = testDB.getCollection(collName); assert.commandWorked(coll.insert({a: 1})); -assert.commandWorked(testDB.adminCommand({setFeatureCompatibilityVersion: lastStableFCV})); +assert.commandWorked(testDB.adminCommand({setFeatureCompatibilityVersion: lastLTSFCV})); const fp = configureFailPoint(primary, "leaveIndexBuildUnfinishedForShutdown"); diff --git a/jstests/noPassthrough/validate_hook_resume_fcv_upgrade.js b/jstests/noPassthrough/validate_hook_resume_fcv_upgrade.js index 3251c8fd30e..768acfde7fb 100644 --- a/jstests/noPassthrough/validate_hook_resume_fcv_upgrade.js +++ b/jstests/noPassthrough/validate_hook_resume_fcv_upgrade.js @@ -83,7 +83,7 @@ function runValidateHook(testCase) { function testStandalone(additionalSetupFn, { expectedAtTeardownFCV, - expectedSetLastStableFCV: expectedSetLastStableFCV = 0, + expectedSetLastLTSFCV: expectedSetLastLTSFCV = 0, expectedSetLatestFCV: expectedSetLatestFCV = 0 } = {}) { const conn = @@ -111,11 +111,11 @@ function testStandalone(additionalSetupFn, { countMatches(pattern, output), "expected to find " + tojson(pattern) + " from mongod in the log output"); - for (let [targetVersion, expectedCount] of [[lastStableFCV, expectedSetLastStableFCV], + for (let [targetVersion, expectedCount] of [[lastLTSFCV, expectedSetLastLTSFCV], [latestFCV, expectedSetLatestFCV]]) { // Since the additionalSetupFn() function may run the setFeatureCompatibilityVersion // command and we don't have a guarantee those log messages were cleared when - // clearRawMongoProgramOutput() was called, we assert 'expectedSetLastStableFCV' and + // clearRawMongoProgramOutput() was called, we assert 'expectedSetLastLTSFCV' and // 'expectedSetLatestFCV' as lower bounds. const pattern = makePatternForSetFCV(targetVersion); assert.lte(expectedCount, @@ -163,7 +163,7 @@ function forceInterruptedUpgradeOrDowngrade(conn, targetVersion) { conn.adminCommand({getParameter: 1, featureCompatibilityVersion: 1})); if (res.featureCompatibilityVersion.hasOwnProperty("targetVersion")) { - checkFCV(conn.getDB("admin"), lastStableFCV, targetVersion); + checkFCV(conn.getDB("admin"), lastLTSFCV, targetVersion); jsTest.log(`Reached partially downgraded state after ${attempts} attempts`); return true; } @@ -173,8 +173,8 @@ function forceInterruptedUpgradeOrDowngrade(conn, targetVersion) { // Note that we're using 'conn' rather than 'setFCVConn' to avoid the upgrade being // interrupted. assert.commandWorked(conn.adminCommand({ - setFeatureCompatibilityVersion: targetVersion === lastStableFCV ? latestFCV - : lastStableFCV + setFeatureCompatibilityVersion: targetVersion === lastLTSFCV ? latestFCV + : lastLTSFCV })); }, "failed to get featureCompatibilityVersion document into a partially downgraded" + @@ -192,35 +192,23 @@ function forceInterruptedUpgradeOrDowngrade(conn, targetVersion) { }, {expectedAtTeardownFCV: latestFCV}); })(); -(function testStandaloneInLastStableFCV() { +(function testStandaloneInLastLTSFCV() { testStandalone(conn => { - assert.commandWorked(conn.adminCommand({setFeatureCompatibilityVersion: lastStableFCV})); - checkFCV(conn.getDB("admin"), lastStableFCV); - }, { - expectedAtTeardownFCV: lastStableFCV, - expectedSetLastStableFCV: 1, - expectedSetLatestFCV: 1 - }); + assert.commandWorked(conn.adminCommand({setFeatureCompatibilityVersion: lastLTSFCV})); + checkFCV(conn.getDB("admin"), lastLTSFCV); + }, {expectedAtTeardownFCV: lastLTSFCV, expectedSetLastLTSFCV: 1, expectedSetLatestFCV: 1}); })(); (function testStandaloneWithInterruptedFCVDowngrade() { testStandalone(conn => { - forceInterruptedUpgradeOrDowngrade(conn, lastStableFCV); - }, { - expectedAtTeardownFCV: lastStableFCV, - expectedSetLastStableFCV: 2, - expectedSetLatestFCV: 1 - }); + forceInterruptedUpgradeOrDowngrade(conn, lastLTSFCV); + }, {expectedAtTeardownFCV: lastLTSFCV, expectedSetLastLTSFCV: 2, expectedSetLatestFCV: 1}); })(); (function testStandaloneWithInterruptedFCVUpgrade() { testStandalone(conn => { - assert.commandWorked(conn.adminCommand({setFeatureCompatibilityVersion: lastStableFCV})); + assert.commandWorked(conn.adminCommand({setFeatureCompatibilityVersion: lastLTSFCV})); forceInterruptedUpgradeOrDowngrade(conn, latestFCV); - }, { - expectedAtTeardownFCV: lastStableFCV, - expectedSetLastStableFCV: 1, - expectedSetLatestFCV: 1 - }); + }, {expectedAtTeardownFCV: lastLTSFCV, expectedSetLastLTSFCV: 1, expectedSetLatestFCV: 1}); })(); })(); diff --git a/jstests/noPassthroughWithMongod/isMaster_feature_compatibility_version.js b/jstests/noPassthroughWithMongod/isMaster_feature_compatibility_version.js index 9cace458341..7de5e1f1659 100644 --- a/jstests/noPassthroughWithMongod/isMaster_feature_compatibility_version.js +++ b/jstests/noPassthroughWithMongod/isMaster_feature_compatibility_version.js @@ -28,7 +28,7 @@ assert.eq(res.minWireVersion, res.maxWireVersion, tojson(res)); // returns minWireVersion == maxWireVersion. assert.commandWorked( adminDB.system.version.update({_id: "featureCompatibilityVersion"}, - {$set: {version: lastStableFCV, targetVersion: latestFCV}}, + {$set: {version: lastLTSFCV, targetVersion: latestFCV}}, {writeConcern: {w: 1}})); res = adminDB.runCommand(isMasterCommand); assert.commandWorked(res); @@ -38,7 +38,7 @@ assert.eq(res.minWireVersion, res.maxWireVersion, tojson(res)); // returns minWireVersion == maxWireVersion. assert.commandWorked(adminDB.system.version.update( {_id: "featureCompatibilityVersion"}, - {$set: {version: lastStableFCV, targetVersion: lastStableFCV, previousVersion: latestFCV}}, + {$set: {version: lastLTSFCV, targetVersion: lastLTSFCV, previousVersion: latestFCV}}, {writeConcern: {w: 1}})); res = adminDB.runCommand(isMasterCommand); assert.commandWorked(res); @@ -47,7 +47,7 @@ assert.eq(res.minWireVersion, res.maxWireVersion, tojson(res)); // When the featureCompatibilityVersion is equal to the downgrade version, running isMaster with // internalClient returns minWireVersion + 1 == maxWireVersion. assert.commandWorked( - adminDB.runCommand({setFeatureCompatibilityVersion: lastStableFCV, writeConcern: {w: 1}})); + adminDB.runCommand({setFeatureCompatibilityVersion: lastLTSFCV, writeConcern: {w: 1}})); res = adminDB.runCommand(isMasterCommand); assert.commandWorked(res); assert.eq(res.minWireVersion + 1, res.maxWireVersion, tojson(res)); diff --git a/jstests/replsets/awaitable_ismaster_fcv_change.js b/jstests/replsets/awaitable_ismaster_fcv_change.js index 535306964a2..95add40a820 100644 --- a/jstests/replsets/awaitable_ismaster_fcv_change.js +++ b/jstests/replsets/awaitable_ismaster_fcv_change.js @@ -125,14 +125,14 @@ assert.eq(1, numAwaitingTopologyChangeOnSecondary); jsTestLog("Downgrade the featureCompatibilityVersion."); // Downgrading the FCV will cause the isMaster requests to respond on both primary and secondary. -assert.commandWorked(primaryAdminDB.runCommand( - {setFeatureCompatibilityVersion: lastStableFCV, writeConcern: {w: 1}})); +assert.commandWorked( + primaryAdminDB.runCommand({setFeatureCompatibilityVersion: lastLTSFCV, writeConcern: {w: 1}})); awaitIsMasterBeforeDowngradeFCVOnPrimary(); awaitIsMasterBeforeDowngradeFCVOnSecondary(); // Ensure the featureCompatibilityVersion document update has been replicated. rst.awaitReplication(); -checkFCV(primaryAdminDB, lastStableFCV); -checkFCV(secondaryAdminDB, lastStableFCV); +checkFCV(primaryAdminDB, lastLTSFCV); +checkFCV(secondaryAdminDB, lastLTSFCV); // All isMaster requests should have been responded to after the FCV change. numAwaitingTopologyChangeOnPrimary = @@ -189,10 +189,10 @@ assert.eq(1, numAwaitingTopologyChangeOnPrimary); assert.eq(1, numAwaitingTopologyChangeOnSecondary); // Setting the FCV to the same version will not trigger an isMaster response. -assert.commandWorked(primaryAdminDB.runCommand( - {setFeatureCompatibilityVersion: lastStableFCV, writeConcern: {w: 1}})); -checkFCV(primaryAdminDB, lastStableFCV); -checkFCV(secondaryAdminDB, lastStableFCV); +assert.commandWorked( + primaryAdminDB.runCommand({setFeatureCompatibilityVersion: lastLTSFCV, writeConcern: {w: 1}})); +checkFCV(primaryAdminDB, lastLTSFCV); +checkFCV(secondaryAdminDB, lastLTSFCV); // Each node still has one isMaster request waiting on a topology change. numAwaitingTopologyChangeOnPrimary = diff --git a/jstests/replsets/fcv_retryable_write_concern.js b/jstests/replsets/fcv_retryable_write_concern.js index 099046f107f..f7c85f4f735 100644 --- a/jstests/replsets/fcv_retryable_write_concern.js +++ b/jstests/replsets/fcv_retryable_write_concern.js @@ -33,13 +33,13 @@ assert.commandWorked( runWriteConcernRetryabilityTest(priConn, secConn, { - setFeatureCompatibilityVersion: lastStableFCV, + setFeatureCompatibilityVersion: lastLTSFCV, writeConcern: {w: 'majority', wtimeout: 200}, }, kNodes, 'admin'); -assert.commandWorked(priConn.adminCommand({setFeatureCompatibilityVersion: lastStableFCV})); -checkFCV(priConn.getDB('admin'), lastStableFCV); +assert.commandWorked(priConn.adminCommand({setFeatureCompatibilityVersion: lastLTSFCV})); +checkFCV(priConn.getDB('admin'), lastLTSFCV); runWriteConcernRetryabilityTest(priConn, secConn, diff --git a/jstests/replsets/initial_sync_fcv.js b/jstests/replsets/initial_sync_fcv.js index 11e60dd07ac..015de237d98 100644 --- a/jstests/replsets/initial_sync_fcv.js +++ b/jstests/replsets/initial_sync_fcv.js @@ -80,16 +80,16 @@ function runInitialSync(cmd, initialFCV) { // Ensure that attempting to downgrade the featureCompatibilityVersion during initial sync // fails. -runInitialSync({setFeatureCompatibilityVersion: lastStableFCV}, /*initialFCV*/ latestFCV); +runInitialSync({setFeatureCompatibilityVersion: lastLTSFCV}, /*initialFCV*/ latestFCV); // Ensure that attempting to upgrade the featureCompatibilityVersion during initial sync fails. -runInitialSync({setFeatureCompatibilityVersion: latestFCV}, /*initialFCV*/ lastStableFCV); +runInitialSync({setFeatureCompatibilityVersion: latestFCV}, /*initialFCV*/ lastLTSFCV); // Modifications to the featureCompatibilityVersion document during initial sync should be // caught and cause initial sync to fail. runInitialSync({ update: 'system.version', - updates: [{q: {_id: 'featureCompatibilityVersion'}, u: {'version': lastStableFCV}}] + updates: [{q: {_id: 'featureCompatibilityVersion'}, u: {'version': lastLTSFCV}}] }, /*initialFCV*/ latestFCV); diff --git a/jstests/replsets/initial_sync_fcv_downgrade.js b/jstests/replsets/initial_sync_fcv_downgrade.js index 4d53969765c..c7986792ac4 100644 --- a/jstests/replsets/initial_sync_fcv_downgrade.js +++ b/jstests/replsets/initial_sync_fcv_downgrade.js @@ -95,8 +95,8 @@ assertVoteCount(primary, { totalMembersCount: 2, }); -jsTestLog("Downgrade FCV to " + lastStableFCV); -assert.commandFailedWithCode(primary.adminCommand({setFeatureCompatibilityVersion: lastStableFCV}), +jsTestLog("Downgrade FCV to " + lastLTSFCV); +assert.commandFailedWithCode(primary.adminCommand({setFeatureCompatibilityVersion: lastLTSFCV}), ErrorCodes.ConflictingOperationInProgress); checkFCV({version: latestFCV, targetVersion: null}); @@ -121,8 +121,8 @@ jsTestLog("Wait for reconfig command on primary to hang before storing the new c checkLog.containsJson(primary, 4637900); let fcvDowngradeThread = startParallelShell(() => { - jsTestLog("Downgrade FCV to " + lastStableFCV); - assert.commandFailedWithCode(db.adminCommand({setFeatureCompatibilityVersion: lastStableFCV}), + jsTestLog("Downgrade FCV to " + lastLTSFCV); + assert.commandFailedWithCode(db.adminCommand({setFeatureCompatibilityVersion: lastLTSFCV}), ErrorCodes.ConflictingOperationInProgress); }, primary.port); @@ -131,7 +131,7 @@ assert.soon( () => { return primaryAdminDB .currentOp({ - "command.setFeatureCompatibilityVersion": lastStableFCV, + "command.setFeatureCompatibilityVersion": lastLTSFCV, waitingForLock: true, "lockStats.Mutex.acquireWaitCount.W": NumberLong(1) }) @@ -190,10 +190,10 @@ assertVoteCount(primary, { // FCV downgrade should fail as secondary0 config version is not up-to-date with primary's config // version. -jsTestLog("Downgrade FCV to " + lastStableFCV); +jsTestLog("Downgrade FCV to " + lastLTSFCV); const res = assert.commandFailedWithCode( primary.adminCommand( - {setFeatureCompatibilityVersion: lastStableFCV, "writeConcern": {wtimeout: 5 * 1000}}), + {setFeatureCompatibilityVersion: lastLTSFCV, "writeConcern": {wtimeout: 5 * 1000}}), ErrorCodes.WriteConcernFailed); assert(res.errmsg.startsWith( "Failed to wait for the current replica set config to propagate to all nodes"), @@ -207,10 +207,10 @@ assert.commandWorked( testCleanup(newNode.conn); // Scenario # 4: Test that no 'newlyAdded' members in repl config on fcv downgrade. -jsTestLog("Downgrade FCV to " + lastStableFCV); -assert.commandWorked(primary.adminCommand({setFeatureCompatibilityVersion: lastStableFCV})); +jsTestLog("Downgrade FCV to " + lastLTSFCV); +assert.commandWorked(primary.adminCommand({setFeatureCompatibilityVersion: lastLTSFCV})); -checkFCV({version: lastStableFCV, targetVersion: null}); +checkFCV({version: lastLTSFCV, targetVersion: null}); // Check that the "newlyAdded" field doesn't exist in the config document on all nodes. rst.nodes.forEach(function(node) { diff --git a/jstests/replsets/initial_sync_fcv_upgrade.js b/jstests/replsets/initial_sync_fcv_upgrade.js index c8178d8610f..047ebd09f13 100644 --- a/jstests/replsets/initial_sync_fcv_upgrade.js +++ b/jstests/replsets/initial_sync_fcv_upgrade.js @@ -25,7 +25,7 @@ const primaryColl = primaryDB[collName]; const primaryAdminDB = primary.getDB("admin"); // Set FCV to 4.4 to test the upgrade behavior. -assert.commandWorked(primary.adminCommand({setFeatureCompatibilityVersion: lastStableFCV})); +assert.commandWorked(primary.adminCommand({setFeatureCompatibilityVersion: lastLTSFCV})); assert.commandWorked(primary.adminCommand({clearLog: "global"})); let startupParams = {}; diff --git a/jstests/replsets/noop_writes_wait_for_write_concern_fcv.js b/jstests/replsets/noop_writes_wait_for_write_concern_fcv.js index b8df9053583..875e09acc13 100644 --- a/jstests/replsets/noop_writes_wait_for_write_concern_fcv.js +++ b/jstests/replsets/noop_writes_wait_for_write_concern_fcv.js @@ -1,7 +1,7 @@ /** * Tests that a no-op setFeatureCompatibilityVersion request still waits for write concern. * - * This tests behavior on both latest and last-stable FCVs. + * This tests behavior on both latest and last-lts FCVs. * @tags: [multiversion_incompatible] */ (function() { @@ -69,6 +69,6 @@ function testFCVNoop(targetVersion) { replTest.stopSet(); } -testFCVNoop(lastStableFCV); +testFCVNoop(lastLTSFCV); testFCVNoop(latestFCV); })(); diff --git a/jstests/replsets/quiesce_mode_turned_off_in_fcv_44.js b/jstests/replsets/quiesce_mode_turned_off_in_fcv_44.js index e1bfded6c14..06487587c4c 100644 --- a/jstests/replsets/quiesce_mode_turned_off_in_fcv_44.js +++ b/jstests/replsets/quiesce_mode_turned_off_in_fcv_44.js @@ -17,7 +17,7 @@ rst.initiateWithHighElectionTimeout(); const primary = rst.getPrimary(); // Set FCV to 4.4 to test that quiesce mode is ignored. -assert.commandWorked(primary.adminCommand({setFeatureCompatibilityVersion: lastStableFCV})); +assert.commandWorked(primary.adminCommand({setFeatureCompatibilityVersion: lastLTSFCV})); assert.commandWorked(primary.adminCommand({clearLog: "global"})); // Shutdown the node. diff --git a/jstests/replsets/reconfig_prohibits_w0.js b/jstests/replsets/reconfig_prohibits_w0.js index cd717932a05..90fe4d8705a 100644 --- a/jstests/replsets/reconfig_prohibits_w0.js +++ b/jstests/replsets/reconfig_prohibits_w0.js @@ -18,7 +18,7 @@ function testReconfig(gleDefaults) { conf.version++; var response = admin.runCommand({replSetReconfig: conf}); - // TODO (SERVER-48065): Once 4.6 is last-stable, remove + // TODO (SERVER-48065): Once 4.6 is last-lts, remove // ErrorCodes.NewReplicaSetConfigurationIncompatible. assert.commandFailedWithCode( response, diff --git a/jstests/replsets/rollback_set_fcv.js b/jstests/replsets/rollback_set_fcv.js index 7a787532e7b..63ca199c6fe 100644 --- a/jstests/replsets/rollback_set_fcv.js +++ b/jstests/replsets/rollback_set_fcv.js @@ -32,7 +32,7 @@ function rollbackFCVFromDowngradingOrUpgrading(fromFCV, toFCV) { // Ensure the cluster starts at the correct FCV. assert.commandWorked(primary.adminCommand({setFeatureCompatibilityVersion: toFCV})); - jsTestLog("Testing rolling back FCV from {version: " + lastStableFCV + + jsTestLog("Testing rolling back FCV from {version: " + lastLTSFCV + ", targetVersion: " + fromFCV + "} to {version: " + toFCV + "}"); rollbackTest.transitionToRollbackOperations(); @@ -74,7 +74,7 @@ function rollbackFCVFromDowngradedOrUpgraded(fromFCV, toFCV, failPoint) { assert.commandWorked(primary.adminCommand({setFeatureCompatibilityVersion: toFCV})); jsTestLog("Testing rolling back FCV from {version: " + fromFCV + - "} to {version: " + lastStableFCV + ", targetVersion: " + fromFCV + "}"); + "} to {version: " + lastLTSFCV + ", targetVersion: " + fromFCV + "}"); // A failpoint to hang right before unsetting the targetVersion. const hangBeforeUnsettingTargetVersion = configureFailPoint(primary, failPoint); @@ -92,13 +92,13 @@ function rollbackFCVFromDowngradedOrUpgraded(fromFCV, toFCV, failPoint) { }, "Failed waiting for server to unset the targetVersion or to set the FCV to " + fromFCV); rollbackTest.transitionToSyncSourceOperationsBeforeRollback(); // The secondary should never have received the update to unset the targetVersion. - checkFCV(secondaryAdminDB, lastStableFCV, fromFCV); + checkFCV(secondaryAdminDB, lastLTSFCV, fromFCV); rollbackTest.transitionToSyncSourceOperationsDuringRollback(); setFCVInParallel(); rollbackTest.transitionToSteadyStateOperations(); // The primary should have rolled back their FCV to contain the targetVersion. - checkFCV(primaryAdminDB, lastStableFCV, fromFCV); - checkFCV(secondaryAdminDB, lastStableFCV, fromFCV); + checkFCV(primaryAdminDB, lastLTSFCV, fromFCV); + checkFCV(secondaryAdminDB, lastLTSFCV, fromFCV); let newPrimary = rollbackTest.getPrimary(); // As a rule, we forbid downgrading a node while a node is still in the upgrading state and @@ -113,16 +113,16 @@ const testName = jsTest.name(); const rollbackTest = new RollbackTest(testName); // Tests the case where we roll back the FCV state from downgrading to fully upgraded. -rollbackFCVFromDowngradingOrUpgrading(lastStableFCV, latestFCV); +rollbackFCVFromDowngradingOrUpgrading(lastLTSFCV, latestFCV); // Tests the case where we roll back the FCV state from upgrading to fully downgraded. -rollbackFCVFromDowngradingOrUpgrading(latestFCV, lastStableFCV); +rollbackFCVFromDowngradingOrUpgrading(latestFCV, lastLTSFCV); // Tests the case where we roll back the FCV state from fully downgraded to downgrading. -rollbackFCVFromDowngradedOrUpgraded(lastStableFCV, latestFCV, "hangWhileDowngrading"); +rollbackFCVFromDowngradedOrUpgraded(lastLTSFCV, latestFCV, "hangWhileDowngrading"); // Tests the case where we roll back the FCV state from fully upgraded to upgrading. -rollbackFCVFromDowngradedOrUpgraded(latestFCV, lastStableFCV, "hangWhileUpgrading"); +rollbackFCVFromDowngradedOrUpgraded(latestFCV, lastLTSFCV, "hangWhileUpgrading"); rollbackTest.stop(); }());
\ No newline at end of file diff --git a/jstests/replsets/trigger_initial_stable_checkpoint.js b/jstests/replsets/trigger_initial_stable_checkpoint.js index 735f8e7a562..e76c07ddf8a 100644 --- a/jstests/replsets/trigger_initial_stable_checkpoint.js +++ b/jstests/replsets/trigger_initial_stable_checkpoint.js @@ -1,7 +1,7 @@ /** * Ensure that we properly trigger a stable checkpoint when starting up a replica set node. * - * We don't support unclean shutdowns with restarts into a last-stable binary. + * We don't support unclean shutdowns with restarts into a last-lts binary. * @tags: [requires_persistence, multiversion_incompatible] */ (function() { diff --git a/jstests/sharding/autodiscover_config_rs_from_secondary.js b/jstests/sharding/autodiscover_config_rs_from_secondary.js index 2a8c3cd6c36..9d9bd4adbd5 100644 --- a/jstests/sharding/autodiscover_config_rs_from_secondary.js +++ b/jstests/sharding/autodiscover_config_rs_from_secondary.js @@ -14,15 +14,15 @@ conf.writeConcernMajorityJournalDefault = true; rst.initiate(conf); // Config servers always start at the latest available FCV for the binary. This poses a problem -// when this test is run in the mixed version suite because mongos will be 'last-stable' and if +// when this test is run in the mixed version suite because mongos will be 'last-lts' and if // this node is of the latest binary, it will report itself as the 'latest' FCV, which would // cause mongos to refuse to connect to it and shutdown. // // In order to work around this, in the mixed version suite, be pessimistic and always set this -// node to the 'last-stable' FCV +// node to the 'last-lts' FCV if (jsTestOptions().shardMixedBinVersions) { assert.commandWorked( - rst.getPrimary().adminCommand({setFeatureCompatibilityVersion: lastStableFCV})); + rst.getPrimary().adminCommand({setFeatureCompatibilityVersion: lastLTSFCV})); rst.awaitReplication(); } diff --git a/jstests/sharding/autosplit_include.js b/jstests/sharding/autosplit_include.js index 1247a39385c..84dc5d16a19 100644 --- a/jstests/sharding/autosplit_include.js +++ b/jstests/sharding/autosplit_include.js @@ -5,7 +5,7 @@ function waitForOngoingChunkSplits(shardingTest) { shardingTest.forEachConnection(function(conn) { var res = conn.getDB("admin").runCommand({waitForOngoingChunkSplits: 1}); if (!res.hasOwnProperty("ok")) { - // This is expected in the sharding_last_stable suite, so we can't assert.commandWorked, + // This is expected in the sharding_last_lts suite, so we can't assert.commandWorked, // but it's good to put a log message in case it fails at some point outside of this // suite print("Command waitForOngoingChunkSplits failed"); diff --git a/jstests/sharding/config_rs_change.js b/jstests/sharding/config_rs_change.js index 80bb1caa4c9..34cdcab4661 100644 --- a/jstests/sharding/config_rs_change.js +++ b/jstests/sharding/config_rs_change.js @@ -8,10 +8,10 @@ var replConfig = configRS.getReplSetConfig(); replConfig.configsvr = true; configRS.initiate(replConfig); -// Ensure the featureCompatibilityVersion is lastStableFCV so that the mongos can connect if its -// binary version is lastStable. +// Ensure the featureCompatibilityVersion is lastLTSFCV so that the mongos can connect if its +// binary version is lastLTS. assert.commandWorked( - configRS.getPrimary().adminCommand({setFeatureCompatibilityVersion: lastStableFCV})); + configRS.getPrimary().adminCommand({setFeatureCompatibilityVersion: lastLTSFCV})); // Build a seed list for the config servers to pass to mongos that uses "localhost" for the // hostnames even though the replica set config uses the hostname. diff --git a/jstests/sharding/convert_to_and_from_sharded.js b/jstests/sharding/convert_to_and_from_sharded.js index a4779afbcf7..2541b982e36 100644 --- a/jstests/sharding/convert_to_and_from_sharded.js +++ b/jstests/sharding/convert_to_and_from_sharded.js @@ -36,14 +36,14 @@ var priConn = replShard.getPrimary(); // Starting a brand new replica set without '--shardsvr' will cause the FCV to be written as the // latest available for that binary. This poses a problem when this test is run in the mixed -// version suite because mongos will be 'last-stable' and if this node is of the latest binary, +// version suite because mongos will be 'last-lts' and if this node is of the latest binary, // it will report itself as the 'latest' FCV, which would cause mongos to refuse to connect to // it and shutdown. // // In order to work around this, in the mixed version suite, be pessimistic and always set this -// node to the 'last-stable' FCV +// node to the 'last-lts' FCV if (jsTestOptions().shardMixedBinVersions) { - assert.commandWorked(priConn.adminCommand({setFeatureCompatibilityVersion: lastStableFCV})); + assert.commandWorked(priConn.adminCommand({setFeatureCompatibilityVersion: lastLTSFCV})); replShard.awaitReplication(); } diff --git a/jstests/sharding/database_versioning_all_commands.js b/jstests/sharding/database_versioning_all_commands.js index 67f40de5816..f0db7782f84 100644 --- a/jstests/sharding/database_versioning_all_commands.js +++ b/jstests/sharding/database_versioning_all_commands.js @@ -5,7 +5,7 @@ (function() { 'use strict'; -load('jstests/sharding/libs/last_stable_mongos_commands.js'); +load('jstests/sharding/libs/last_lts_mongos_commands.js'); function getNewDbName(dbName) { if (!getNewDbName.counter) { diff --git a/jstests/sharding/empty_cluster_init.js b/jstests/sharding/empty_cluster_init.js index 6a67d8abfee..612cabd1df1 100644 --- a/jstests/sharding/empty_cluster_init.js +++ b/jstests/sharding/empty_cluster_init.js @@ -4,7 +4,7 @@ // version initialization. // // This test manually starts routers with the latest binary which can't connect to config server -// nodes using the last-stable binary because their wire versions are incompatible. +// nodes using the last-lts binary because their wire versions are incompatible. // @tags: [multiversion_incompatible] // diff --git a/jstests/sharding/kill_sessions.js b/jstests/sharding/kill_sessions.js index 583bb4c6352..a9900fe7e74 100644 --- a/jstests/sharding/kill_sessions.js +++ b/jstests/sharding/kill_sessions.js @@ -2,7 +2,7 @@ * Run the kill_sessions tests against a sharded cluster. * * TODO SERVER-45385: These tests can be enabled in multiversion once the logging of session cursor - * cleanup has been backported and released in last-stable. + * cleanup has been backported and released in last-lts. * @tags: [multiversion_incompatible] */ diff --git a/jstests/sharding/libs/last_stable_mongod_commands.js b/jstests/sharding/libs/last_lts_mongod_commands.js index 371748a1c2c..371748a1c2c 100644 --- a/jstests/sharding/libs/last_stable_mongod_commands.js +++ b/jstests/sharding/libs/last_lts_mongod_commands.js diff --git a/jstests/sharding/libs/last_stable_mongos_commands.js b/jstests/sharding/libs/last_lts_mongos_commands.js index 27b757b1eff..0eda44d4ad7 100644 --- a/jstests/sharding/libs/last_stable_mongos_commands.js +++ b/jstests/sharding/libs/last_lts_mongos_commands.js @@ -1,5 +1,5 @@ // These commands were removed from mongos since the last LTS version, but will still appear in the -// listCommands output of a last LTS version mongos. A last-stable mongos will be unable to +// listCommands output of a last LTS version mongos. A last-lts mongos will be unable to // run a command on a latest version shard that no longer supports that command. To increase test // coverage and allow us to run on same- and mixed-version suites, we allow these commands to have a // test defined without always existing on the servers being used. diff --git a/jstests/sharding/max_time_ms_sharded_new_commands.js b/jstests/sharding/max_time_ms_sharded_new_commands.js index 562bb495256..28046963b75 100644 --- a/jstests/sharding/max_time_ms_sharded_new_commands.js +++ b/jstests/sharding/max_time_ms_sharded_new_commands.js @@ -22,16 +22,14 @@ var configureMaxTimeAlwaysTimeOut = function(mode) { jsTestLog("Positive test for setFeatureCompatibilityVersion"); configureMaxTimeAlwaysTimeOut("alwaysOn"); assert.commandFailedWithCode( - admin.runCommand( - {setFeatureCompatibilityVersion: lastStableFCV, maxTimeMS: 1000 * 60 * 60 * 24}), + admin.runCommand({setFeatureCompatibilityVersion: lastLTSFCV, maxTimeMS: 1000 * 60 * 60 * 24}), ErrorCodes.MaxTimeMSExpired, "expected setFeatureCompatibilityVersion to fail due to maxTimeAlwaysTimeOut fail point"); jsTestLog("Negative test for setFeatureCompatibilityVersion to downgrade"); configureMaxTimeAlwaysTimeOut("off"); assert.commandWorked( - admin.runCommand( - {setFeatureCompatibilityVersion: lastStableFCV, maxTimeMS: 1000 * 60 * 60 * 24}), + admin.runCommand({setFeatureCompatibilityVersion: lastLTSFCV, maxTimeMS: 1000 * 60 * 60 * 24}), "expected setFeatureCompatibilityVersion to not hit time limit in mongod"); jsTestLog("Negative test for setFeatureCompatibilityVersion to upgrade"); diff --git a/jstests/sharding/mongos_wait_csrs_initiate.js b/jstests/sharding/mongos_wait_csrs_initiate.js index 80b18e969e4..2b20d2f49e4 100644 --- a/jstests/sharding/mongos_wait_csrs_initiate.js +++ b/jstests/sharding/mongos_wait_csrs_initiate.js @@ -14,10 +14,10 @@ assert.throws(function() { jsTestLog("Initiating CSRS"); configRS.initiate(replConfig); -// Ensure the featureCompatibilityVersion is lastStableFCV so that the mongos can connect if it is -// binary version last-stable. +// Ensure the featureCompatibilityVersion is lastLTSFCV so that the mongos can connect if it is +// binary version last-lts. assert.commandWorked( - configRS.getPrimary().adminCommand({setFeatureCompatibilityVersion: lastStableFCV})); + configRS.getPrimary().adminCommand({setFeatureCompatibilityVersion: lastLTSFCV})); jsTestLog("getting mongos"); var e; diff --git a/jstests/sharding/read_write_concern_defaults_application.js b/jstests/sharding/read_write_concern_defaults_application.js index b23c41d8247..9b4352f2793 100644 --- a/jstests/sharding/read_write_concern_defaults_application.js +++ b/jstests/sharding/read_write_concern_defaults_application.js @@ -33,7 +33,7 @@ load('jstests/libs/profiler.js'); load("jstests/libs/logv2_helpers.js"); -load('jstests/sharding/libs/last_stable_mongod_commands.js'); +load('jstests/sharding/libs/last_lts_mongod_commands.js'); let db = "test"; let coll = "foo"; diff --git a/jstests/sharding/safe_secondary_reads_drop_recreate.js b/jstests/sharding/safe_secondary_reads_drop_recreate.js index 8371adae6a7..accf354cbb3 100644 --- a/jstests/sharding/safe_secondary_reads_drop_recreate.js +++ b/jstests/sharding/safe_secondary_reads_drop_recreate.js @@ -20,7 +20,7 @@ "use strict"; load('jstests/libs/profiler.js'); -load('jstests/sharding/libs/last_stable_mongos_commands.js'); +load('jstests/sharding/libs/last_lts_mongos_commands.js'); let db = "test"; let coll = "foo"; diff --git a/jstests/sharding/safe_secondary_reads_single_migration_suspend_range_deletion.js b/jstests/sharding/safe_secondary_reads_single_migration_suspend_range_deletion.js index f6a2f2883b9..380c1a8a256 100644 --- a/jstests/sharding/safe_secondary_reads_single_migration_suspend_range_deletion.js +++ b/jstests/sharding/safe_secondary_reads_single_migration_suspend_range_deletion.js @@ -27,7 +27,7 @@ "use strict"; load('jstests/libs/profiler.js'); -load('jstests/sharding/libs/last_stable_mongos_commands.js'); +load('jstests/sharding/libs/last_lts_mongos_commands.js'); let db = "test"; let coll = "foo"; diff --git a/jstests/sharding/safe_secondary_reads_single_migration_waitForDelete.js b/jstests/sharding/safe_secondary_reads_single_migration_waitForDelete.js index a3cf0781437..8ac795340cb 100644 --- a/jstests/sharding/safe_secondary_reads_single_migration_waitForDelete.js +++ b/jstests/sharding/safe_secondary_reads_single_migration_waitForDelete.js @@ -20,7 +20,7 @@ "use strict"; load('jstests/libs/profiler.js'); -load('jstests/sharding/libs/last_stable_mongos_commands.js'); +load('jstests/sharding/libs/last_lts_mongos_commands.js'); let db = "test"; let coll = "foo"; diff --git a/jstests/sharding/shard_existing_coll_chunk_count.js b/jstests/sharding/shard_existing_coll_chunk_count.js index c883f30b03b..46e2cdba748 100644 --- a/jstests/sharding/shard_existing_coll_chunk_count.js +++ b/jstests/sharding/shard_existing_coll_chunk_count.js @@ -129,8 +129,8 @@ runCase({ }); // Lower chunksize to 1MB, and restart the mongod for it to take. We also -// need to restart mongos for the case of the last-stable suite where the -// shard is also last-stable. +// need to restart mongos for the case of the last-lts suite where the +// shard is also last-lts. assert.commandWorked( s.getDB("config").getCollection("settings").update({_id: "chunksize"}, {$set: {value: 1}}, { upsert: true diff --git a/jstests/sharding/test_stacked_migration_cleanup.js b/jstests/sharding/test_stacked_migration_cleanup.js index d9dd62509bd..bfbcffd5790 100644 --- a/jstests/sharding/test_stacked_migration_cleanup.js +++ b/jstests/sharding/test_stacked_migration_cleanup.js @@ -3,7 +3,7 @@ (function() { 'use strict'; -const clusterInFCV44 = jsTestOptions().mongosBinVersion != 'last-stable'; +const clusterInFCV44 = jsTestOptions().mongosBinVersion != 'last-lts'; // start up a new sharded cluster var st = new ShardingTest({shards: 2, mongos: 1}); diff --git a/jstests/sharding/transient_txn_error_labels_with_write_concern.js b/jstests/sharding/transient_txn_error_labels_with_write_concern.js index eec87cdc4fa..37c54475706 100644 --- a/jstests/sharding/transient_txn_error_labels_with_write_concern.js +++ b/jstests/sharding/transient_txn_error_labels_with_write_concern.js @@ -11,7 +11,7 @@ load("jstests/libs/fail_point_util.js"); load("jstests/libs/write_concern_util.js"); load("jstests/replsets/rslib.js"); -const clusterInFCV44 = jsTestOptions().mongosBinVersion != 'last-stable'; +const clusterInFCV44 = jsTestOptions().mongosBinVersion != 'last-lts'; const dbName = "test"; const collName = "transient_txn_error_labels_with_write_concern"; diff --git a/src/mongo/db/repl/initial_syncer.cpp b/src/mongo/db/repl/initial_syncer.cpp index 7e7013e4aaf..7fc437c2b6b 100644 --- a/src/mongo/db/repl/initial_syncer.cpp +++ b/src/mongo/db/repl/initial_syncer.cpp @@ -629,7 +629,7 @@ void InitialSyncer::_startInitialSyncAttemptCallback( LOGV2_DEBUG(21168, 2, - "Resetting feature compatibility version to last-stable. If the sync source is in " + "Resetting feature compatibility version to last-lts. If the sync source is in " "latest feature compatibility version, we will find out when we clone the " "server configuration collection (admin.system.version)"); serverGlobalParams.featureCompatibility.reset(); diff --git a/src/mongo/db/repl/initial_syncer_test.cpp b/src/mongo/db/repl/initial_syncer_test.cpp index cfc1bff821b..4180a2a5b74 100644 --- a/src/mongo/db/repl/initial_syncer_test.cpp +++ b/src/mongo/db/repl/initial_syncer_test.cpp @@ -228,10 +228,10 @@ public: /** * Schedules and processes a successful response to the network request sent by InitialSyncer's - * feature compatibility version fetcher. Always includes a valid fCV=last-stable document in + * feature compatibility version fetcher. Always includes a valid fCV=last-lts document in * the response. */ - void processSuccessfulFCVFetcherResponseLastStable(); + void processSuccessfulFCVFetcherResponseLastLTS(); void finishProcessingNetworkResponse() { getNet()->runReadyNetworkOperations(); @@ -674,7 +674,7 @@ void assertFCVRequest(RemoteCommandRequest request) { request.cmdObj.getObjectField("filter")); } -void InitialSyncerTest::processSuccessfulFCVFetcherResponseLastStable() { +void InitialSyncerTest::processSuccessfulFCVFetcherResponseLastLTS() { FeatureCompatibilityVersionDocument fcvDoc; fcvDoc.setVersion(ServerGlobalParams::FeatureCompatibility::kLastLTS); processSuccessfulFCVFetcherResponse({fcvDoc.toBSON()}); @@ -1686,7 +1686,7 @@ TEST_F(InitialSyncerTest, processSuccessfulLastOplogEntryFetcherResponse({makeOplogEntryObj(1)}); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); } initialSyncer->join(); @@ -1847,7 +1847,7 @@ TEST_F(InitialSyncerTest, InitialSyncerResendsFindCommandIfFCVFetcherReturnsRetr ASSERT_TRUE(initialSyncer->isActive()); // FCV second attempt. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); } void InitialSyncerTest::runInitialSyncWithBadFCVResponse(std::vector<BSONObj> docs, @@ -2003,7 +2003,7 @@ TEST_F(InitialSyncerTest, FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); // Simulate response to OplogFetcher so it has enough operations to reach end timestamp. getOplogFetcher()->receiveBatch(1LL, {makeOplogEntryObj(1), lastOp.toBSON()}); @@ -2064,7 +2064,7 @@ TEST_F(InitialSyncerTest, InitialSyncerPassesThroughOplogFetcherCallbackError) { net->runReadyNetworkOperations(); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); // Simulate an error response to the OplogFetcher. getOplogFetcher()->simulateResponseError( @@ -2118,7 +2118,7 @@ TEST_F(InitialSyncerTest, FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); // Simulate cursor closing on sync source. getOplogFetcher()->receiveBatch(0LL, {makeOplogEntryObj(1)}); @@ -2179,7 +2179,7 @@ TEST_F( FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); // Simulate cursor closing on sync source. getOplogFetcher()->receiveBatch(0LL, @@ -2238,7 +2238,7 @@ TEST_F( FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); // Simulate cursor closing on sync source. getOplogFetcher()->receiveBatch(0LL, @@ -2290,7 +2290,7 @@ TEST_F(InitialSyncerTest, processSuccessfulLastOplogEntryFetcherResponse({makeOplogEntryObj(1)}); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); } initialSyncer->join(); @@ -2325,7 +2325,7 @@ TEST_F(InitialSyncerTest, InitialSyncerCancelsBothOplogFetcherAndAllDatabaseClon processSuccessfulLastOplogEntryFetcherResponse({makeOplogEntryObj(1)}); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); } ASSERT_OK(initialSyncer->shutdown()); @@ -2384,7 +2384,7 @@ TEST_F(InitialSyncerTest, processSuccessfulLastOplogEntryFetcherResponse({makeOplogEntryObj(1)}); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); } initialSyncer->join(); @@ -2424,7 +2424,7 @@ TEST_F(InitialSyncerTest, FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); } // Oplog entry associated with the stopTimestamp. @@ -2485,7 +2485,7 @@ TEST_F(InitialSyncerTest, InitialSyncerRetriesLastOplogEntryFetcherNetworkError) FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); } // Oplog entry associated with the stopTimestamp. @@ -2567,7 +2567,7 @@ TEST_F(InitialSyncerTest, FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); } // Oplog entry associated with the stopTimestamp. @@ -2640,7 +2640,7 @@ TEST_F(InitialSyncerTest, FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); } // Oplog entry associated with the stopTimestamp. @@ -2691,7 +2691,7 @@ TEST_F(InitialSyncerTest, FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); } // Oplog entry associated with the stopTimestamp. @@ -2752,7 +2752,7 @@ TEST_F( FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); } // Oplog entry associated with the stopTimestamp. @@ -2804,7 +2804,7 @@ TEST_F(InitialSyncerTest, FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); } // Oplog entry associated with the stopTimestamp. @@ -2871,7 +2871,7 @@ TEST_F( FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); } // Oplog entry associated with the stopTimestamp. @@ -2941,7 +2941,7 @@ TEST_F( FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); } // Oplog entry associated with the stopTimestamp. @@ -3011,7 +3011,7 @@ TEST_F( FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); } // Oplog entry associated with the stopTimestamp. @@ -3063,7 +3063,7 @@ TEST_F( FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); } // Oplog entry associated with the stopTimestamp. @@ -3124,7 +3124,7 @@ TEST_F(InitialSyncerTest, InitialSyncerHandlesNetworkErrorsFromRollbackCheckerAf FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); } // Oplog entry associated with the stopTimestamp. @@ -3193,7 +3193,7 @@ TEST_F(InitialSyncerTest, FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); } // Oplog entry associated with the stopTimestamp. @@ -3259,7 +3259,7 @@ TEST_F(InitialSyncerTest, InitialSyncerCancelsLastRollbackCheckerOnShutdown) { FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); } // Oplog entry associated with the stopTimestamp. @@ -3317,7 +3317,7 @@ TEST_F(InitialSyncerTest, InitialSyncerCancelsLastRollbackCheckerOnOplogFetcherC FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); } // Oplog entry associated with the stopTimestamp. @@ -3379,7 +3379,7 @@ TEST_F(InitialSyncerTest, FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); } // Oplog entry associated with the stopTimestamp. @@ -3474,7 +3474,7 @@ TEST_F(InitialSyncerTest, LastOpTimeShouldBeSetEvenIfNoOperationsAreAppliedAfter FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); } // Oplog entry associated with the stopTimestamp. @@ -3532,7 +3532,7 @@ TEST_F(InitialSyncerTest, InitialSyncerPassesThroughGetNextApplierBatchScheduleE FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); } // The cloners start right after the FCV is received. The oplog entry fetcher associated @@ -3593,7 +3593,7 @@ TEST_F(InitialSyncerTest, InitialSyncerPassesThroughSecondGetNextApplierBatchSch FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); } // Before processing scheduled last oplog entry fetcher response, set flag in @@ -3650,7 +3650,7 @@ TEST_F(InitialSyncerTest, InitialSyncerCancelsGetNextApplierBatchOnShutdown) { FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); } // Oplog entry associated with the stopTimestamp. @@ -3709,7 +3709,7 @@ TEST_F(InitialSyncerTest, InitialSyncerPassesThroughGetNextApplierBatchInLockErr FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); // Simulate an OplogFetcher batch with bad oplog entries that will be added to the oplog // buffer and processed by _getNextApplierBatch_inlock(). @@ -3778,7 +3778,7 @@ TEST_F( FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); // Simulate an OplogFetcher batch with bad oplog entries that will be added to the oplog // buffer and processed by _getNextApplierBatch_inlock(). @@ -3840,7 +3840,7 @@ TEST_F(InitialSyncerTest, InitialSyncerPassesThroughMultiApplierScheduleError) { FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); } // Oplog entry associated with the stopTimestamp. @@ -3907,7 +3907,7 @@ TEST_F(InitialSyncerTest, InitialSyncerPassesThroughMultiApplierCallbackError) { kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); // Simulate an OplogFetcher batch that has enough operations to trigger MultiApplier. getOplogFetcher()->receiveBatch(1LL, {makeOplogEntryObj(1), makeOplogEntryObj(2)}); @@ -3960,7 +3960,7 @@ TEST_F(InitialSyncerTest, InitialSyncerCancelsGetNextApplierBatchCallbackOnOplog FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); } // Oplog entry associated with the stopTimestamp. @@ -4016,7 +4016,7 @@ OplogEntry InitialSyncerTest::doInitialSyncWithOneBatch() { FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); // Simulate an OplogFetcher batch that has enough operations to reach end timestamp. getOplogFetcher()->receiveBatch(1LL, {makeOplogEntryObj(1), lastOp.toBSON()}); @@ -4142,7 +4142,7 @@ TEST_F(InitialSyncerTest, FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); // Simulate an OplogFetcher batch that has enough operations to reach end timestamp. getOplogFetcher()->receiveBatch( @@ -4222,7 +4222,7 @@ TEST_F(InitialSyncerTest, OplogOutOfOrderOnOplogFetchFinish) { FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); // Simulate a batch to the OplogFetcher. getOplogFetcher()->receiveBatch(1LL, {makeOplogEntryObj(1)}); @@ -4285,7 +4285,7 @@ TEST_F(InitialSyncerTest, GetInitialSyncProgressReturnsCorrectProgress) { processSuccessfulLastOplogEntryFetcherResponse({makeOplogEntryObj(1)}); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); // Deliver cancellation to OplogFetcher net->runReadyNetworkOperations(); @@ -4348,7 +4348,7 @@ TEST_F(InitialSyncerTest, GetInitialSyncProgressReturnsCorrectProgress) { processSuccessfulLastOplogEntryFetcherResponse({makeOplogEntryObj(1)}); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); } LOGV2(24170, "Done playing first successful response"); @@ -4593,7 +4593,7 @@ TEST_F(InitialSyncerTest, GetInitialSyncProgressReturnsCorrectProgressForNetwork FailPointEnableBlock clonerFailpoint("hangAfterClonerStage", kListDatabasesFailPointData); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); } // Oplog entry associated with the stopTimestamp. @@ -4762,7 +4762,7 @@ TEST_F(InitialSyncerTest, GetInitialSyncProgressOmitsClonerStatsIfClonerStatsExc .data); // Feature Compatibility Version. - processSuccessfulFCVFetcherResponseLastStable(); + processSuccessfulFCVFetcherResponseLastLTS(); // Simulate a batch to OplogFetcher. getOplogFetcher()->receiveBatch(1LL, {makeOplogEntryObj(1)}); diff --git a/src/mongo/rpc/protocol_test.cpp b/src/mongo/rpc/protocol_test.cpp index 61ca6e894f7..067ae2b775d 100644 --- a/src/mongo/rpc/protocol_test.cpp +++ b/src/mongo/rpc/protocol_test.cpp @@ -147,28 +147,28 @@ TEST(Protocol, validateWireVersion) { WireVersion::LATEST_WIRE_VERSION - 1, WireVersion::LATEST_WIRE_VERSION); - // MongoD 'latest' client -> MongoD downgraded 'last-stable' server + // MongoD 'latest' client -> MongoD downgraded 'last-lts' server VALIDATE_WIRE_VERSION(ASSERT_OK, WireVersion::LATEST_WIRE_VERSION - 1, WireVersion::LATEST_WIRE_VERSION, WireVersion::LATEST_WIRE_VERSION - 2, WireVersion::LATEST_WIRE_VERSION - 1); - // MongoD 'latest' client -> MongoD upgraded 'last-stable' server + // MongoD 'latest' client -> MongoD upgraded 'last-lts' server VALIDATE_WIRE_VERSION(ASSERT_OK, WireVersion::LATEST_WIRE_VERSION - 1, WireVersion::LATEST_WIRE_VERSION, WireVersion::LATEST_WIRE_VERSION - 1, WireVersion::LATEST_WIRE_VERSION - 1); - // MongoD downgraded 'last-stable' client -> MongoD 'latest' server + // MongoD downgraded 'last-lts' client -> MongoD 'latest' server VALIDATE_WIRE_VERSION(ASSERT_OK, WireVersion::LATEST_WIRE_VERSION - 2, WireVersion::LATEST_WIRE_VERSION - 1, WireVersion::LATEST_WIRE_VERSION - 1, WireVersion::LATEST_WIRE_VERSION); - // MongoD upgraded 'last-stable' client -> MongoD 'latest' server + // MongoD upgraded 'last-lts' client -> MongoD 'latest' server VALIDATE_WIRE_VERSION(ASSERT_OK, WireVersion::LATEST_WIRE_VERSION - 1, WireVersion::LATEST_WIRE_VERSION - 1, @@ -182,7 +182,7 @@ TEST(Protocol, validateWireVersion) { WireVersion::LATEST_WIRE_VERSION - 1, WireVersion::LATEST_WIRE_VERSION); - // MongoS 'last-stable' client -> MongoD 'latest' server + // MongoS 'last-lts' client -> MongoD 'latest' server VALIDATE_WIRE_VERSION(ASSERT_OK, WireVersion::LATEST_WIRE_VERSION - 1, WireVersion::LATEST_WIRE_VERSION - 1, @@ -199,28 +199,28 @@ TEST(Protocol, validateWireVersion) { WireVersion::LATEST_WIRE_VERSION, WireVersion::LATEST_WIRE_VERSION); - // MongoD 'latest' client -> MongoD downgraded 'last-stable' server + // MongoD 'latest' client -> MongoD downgraded 'last-lts' server VALIDATE_WIRE_VERSION(ASSERT_NOT_OK, WireVersion::LATEST_WIRE_VERSION, WireVersion::LATEST_WIRE_VERSION, WireVersion::LATEST_WIRE_VERSION - 2, WireVersion::LATEST_WIRE_VERSION - 1); - // MongoD 'latest' client -> MongoD upgraded 'last-stable' server + // MongoD 'latest' client -> MongoD upgraded 'last-lts' server VALIDATE_WIRE_VERSION(ASSERT_NOT_OK, WireVersion::LATEST_WIRE_VERSION, WireVersion::LATEST_WIRE_VERSION, WireVersion::LATEST_WIRE_VERSION - 1, WireVersion::LATEST_WIRE_VERSION - 1); - // MongoD downgraded 'last-stable' client -> MongoD 'latest' server + // MongoD downgraded 'last-lts' client -> MongoD 'latest' server VALIDATE_WIRE_VERSION(ASSERT_NOT_OK, WireVersion::LATEST_WIRE_VERSION - 2, WireVersion::LATEST_WIRE_VERSION - 1, WireVersion::LATEST_WIRE_VERSION, WireVersion::LATEST_WIRE_VERSION); - // MongoD upgraded 'last-stable' client -> MongoD 'latest' server + // MongoD upgraded 'last-lts' client -> MongoD 'latest' server VALIDATE_WIRE_VERSION(ASSERT_NOT_OK, WireVersion::LATEST_WIRE_VERSION - 1, WireVersion::LATEST_WIRE_VERSION - 1, @@ -234,7 +234,7 @@ TEST(Protocol, validateWireVersion) { WireVersion::LATEST_WIRE_VERSION, WireVersion::LATEST_WIRE_VERSION); - // MongoS 'last-stable' client -> MongoD 'latest' server + // MongoS 'last-lts' client -> MongoD 'latest' server VALIDATE_WIRE_VERSION(ASSERT_NOT_OK, WireVersion::LATEST_WIRE_VERSION - 1, WireVersion::LATEST_WIRE_VERSION - 1, @@ -265,14 +265,14 @@ TEST(Protocol, validateWireVersion) { * of FCV. */ - // MongoS 'latest' -> MongoD downgraded 'last-stable' server + // MongoS 'latest' -> MongoD downgraded 'last-lts' server VALIDATE_WIRE_VERSION(ASSERT_NOT_OK, WireVersion::LATEST_WIRE_VERSION, WireVersion::LATEST_WIRE_VERSION, WireVersion::LATEST_WIRE_VERSION - 2, WireVersion::LATEST_WIRE_VERSION - 1); - // MongoS 'latest' -> MongoD upgraded 'last-stable' server + // MongoS 'latest' -> MongoD upgraded 'last-lts' server VALIDATE_WIRE_VERSION(ASSERT_NOT_OK, WireVersion::LATEST_WIRE_VERSION, WireVersion::LATEST_WIRE_VERSION, diff --git a/src/mongo/shell/feature_compatibility_version.js b/src/mongo/shell/feature_compatibility_version.js index a126ae9d165..417da56da4a 100644 --- a/src/mongo/shell/feature_compatibility_version.js +++ b/src/mongo/shell/feature_compatibility_version.js @@ -2,7 +2,7 @@ // featureCompatibilityVersion values. /** - * These constants represent the current "latest" and "last-stable" values for the + * These constants represent the current "latest", "last-continuous" and "last-lts" values for the * featureCompatibilityVersion parameter. They should only be used for testing of upgrade-downgrade * scenarios that are intended to be maintained between releases. * @@ -11,7 +11,8 @@ */ var latestFCV = "4.5.1"; -var lastStableFCV = "4.4"; +var lastContinuousFCV = "4.4"; +var lastLTSFCV = "4.4"; /** * Checks the featureCompatibilityVersion document and server parameter. The @@ -25,10 +26,11 @@ function checkFCV(adminDB, version, targetVersion) { assert.commandWorked(res); assert.eq(res.featureCompatibilityVersion.version, version, tojson(res)); assert.eq(res.featureCompatibilityVersion.targetVersion, targetVersion, tojson(res)); - // When both version and targetVersion are equal to lastStableFCV, downgrade is in progress. - // This tests that previousVersion is always equal to latestFCV in downgrading states or - // undefined otherwise. - const isDowngrading = (version === lastStableFCV && targetVersion === lastStableFCV); + // When both version and targetVersion are equal to lastContinuousFCV or lastLTSFCV, downgrade + // is in progress. This tests that previousVersion is always equal to latestFCV in downgrading + // states or undefined otherwise. + const isDowngrading = (version === lastLTSFCV && targetVersion === lastLTSFCV) || + (version === lastContinuousFCV && targetVersion === lastContinuousFCV); if (isDowngrading) { assert.eq(res.featureCompatibilityVersion.previousVersion, latestFCV, tojson(res)); } else { diff --git a/src/mongo/shell/replsettest.js b/src/mongo/shell/replsettest.js index 8dc2b86abb2..8fc224567e1 100644 --- a/src/mongo/shell/replsettest.js +++ b/src/mongo/shell/replsettest.js @@ -1290,17 +1290,17 @@ var ReplSetTest = function(opts) { cmd[cmdKey] = config; // Initiating a replica set with a single node will use "latest" FCV. This will - // cause IncompatibleServerVersion errors if additional "last-stable" binary version + // cause IncompatibleServerVersion errors if additional "last-lts" binary version // nodes are subsequently added to the set, since such nodes cannot set their FCV to - // "latest". Therefore, we make sure the primary is "last-stable" FCV before adding in + // "latest". Therefore, we make sure the primary is "last-lts" FCV before adding in // nodes of different binary versions to the replica set. - let lastStableBinVersionWasSpecifiedForSomeNode = false; + let lastLTSBinVersionWasSpecifiedForSomeNode = false; let explicitBinVersionWasSpecifiedForSomeNode = false; Object.keys(this.nodeOptions).forEach(function(key, index) { let val = self.nodeOptions[key]; if (typeof (val) === "object" && val.hasOwnProperty("binVersion")) { - lastStableBinVersionWasSpecifiedForSomeNode = - MongoRunner.areBinVersionsTheSame(val.binVersion, lastStableFCV); + lastLTSBinVersionWasSpecifiedForSomeNode = + MongoRunner.areBinVersionsTheSame(val.binVersion, lastLTSFCV); explicitBinVersionWasSpecifiedForSomeNode = true; } }); @@ -1343,26 +1343,26 @@ var ReplSetTest = function(opts) { print("ReplSetTest initiate command took " + (new Date() - initiateStart) + "ms for " + this.nodes.length + " nodes in set '" + this.name + "'"); - // Set the FCV to 'last-stable' if we are running a mixed version replica set. If this is a + // Set the FCV to 'last-lts' if we are running a mixed version replica set. If this is a // config server, the FCV will be set as part of ShardingTest. - let setLastStableFCV = (lastStableBinVersionWasSpecifiedForSomeNode || - jsTest.options().useRandomBinVersionsWithinReplicaSet) && + let setLastLTSFCV = (lastLTSBinVersionWasSpecifiedForSomeNode || + jsTest.options().useRandomBinVersionsWithinReplicaSet) && !self.isConfigServer; - if (setLastStableFCV && jsTest.options().replSetFeatureCompatibilityVersion) { + if (setLastLTSFCV && jsTest.options().replSetFeatureCompatibilityVersion) { throw new Error( - "The FCV will be set to 'last-stable' automatically when starting up a replica " + + "The FCV will be set to 'last-lts' automatically when starting up a replica " + "set with mixed binary versions. Therefore, we expect an empty value for " + "'replSetFeatureCompatibilityVersion'."); } - if (setLastStableFCV) { + if (setLastLTSFCV) { // Authenticate before running the command. asCluster(self.nodes, function setFCV() { - let fcv = lastStableFCV; + let fcv = lastLTSFCV; print("Setting feature compatibility version for replica set to '" + fcv + "'"); assert.commandWorked( self.getPrimary().adminCommand({setFeatureCompatibilityVersion: fcv})); - checkFCV(self.getPrimary().getDB("admin"), lastStableFCV); + checkFCV(self.getPrimary().getDB("admin"), lastLTSFCV); print("Fetch the config version from primay since 4.4 downgrade runs a reconfig."); config.version = self.getReplSetConfigFromNode().version; }); @@ -2939,7 +2939,7 @@ var ReplSetTest = function(opts) { options.binVersion = "latest"; } else { const rand = Random.rand(); - options.binVersion = rand < 0.5 ? "latest" : "last-stable"; + options.binVersion = rand < 0.5 ? "latest" : "last-lts"; } 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 73f44cd08e4..c4d464166a1 100644 --- a/src/mongo/shell/servers.js +++ b/src/mongo/shell/servers.js @@ -208,7 +208,9 @@ MongoRunner.binVersionSubs = [ new MongoRunner.VersionSub(extractMajorVersionFromVersionString(shellVersion()), shellVersion()), // To-be-updated when we branch for the next release. - new MongoRunner.VersionSub("last-stable", "4.4") + new MongoRunner.VersionSub("last-continuous", "4.4"), + // To be updated when we branch for the next LTS release. + new MongoRunner.VersionSub("last-lts", "4.4") ]; MongoRunner.getBinVersionFor = function(version) { diff --git a/src/mongo/shell/shardingtest.js b/src/mongo/shell/shardingtest.js index 8e7e721cd5c..f1eae7cb1aa 100644 --- a/src/mongo/shell/shardingtest.js +++ b/src/mongo/shell/shardingtest.js @@ -970,67 +970,67 @@ var ShardingTest = function(params) { * Returns whether any settings to ShardingTest or jsTestOptions indicate this is a multiversion * cluster. * - * Checks for 'last-stable' bin versions via: + * Checks for 'last-lts' bin versions via: * jsTestOptions().shardMixedBinVersions, jsTestOptions().mongosBinVersion, * otherParams.configOptions.binVersion, otherParams.shardOptions.binVersion, * otherParams.mongosOptions.binVersion */ this.isMixedVersionCluster = function() { - var lastStableBinVersion = MongoRunner.getBinVersionFor('last-stable'); + var lastLTSBinVersion = MongoRunner.getBinVersionFor('last-lts'); // Must check shardMixedBinVersion because it causes shardOptions.binVersion to be an object // (versionIterator) rather than a version string. Must check mongosBinVersion, as well, // because it does not update mongosOptions.binVersion. if (jsTestOptions().shardMixedBinVersions || (jsTestOptions().mongosBinVersion && - MongoRunner.areBinVersionsTheSame(lastStableBinVersion, + MongoRunner.areBinVersionsTheSame(lastLTSBinVersion, jsTestOptions().mongosBinVersion))) { return true; } - // Check for 'last-stable' config servers. + // Check for 'last-lts' config servers. if (otherParams.configOptions && otherParams.configOptions.binVersion && MongoRunner.areBinVersionsTheSame( - lastStableBinVersion, + lastLTSBinVersion, MongoRunner.getBinVersionFor(otherParams.configOptions.binVersion))) { return true; } for (var i = 0; i < numConfigs; ++i) { if (otherParams['c' + i] && otherParams['c' + i].binVersion && MongoRunner.areBinVersionsTheSame( - lastStableBinVersion, + lastLTSBinVersion, MongoRunner.getBinVersionFor(otherParams['c' + i].binVersion))) { return true; } } - // Check for 'last-stable' mongod servers. + // Check for 'last-lts' mongod servers. if (otherParams.shardOptions && otherParams.shardOptions.binVersion && MongoRunner.areBinVersionsTheSame( - lastStableBinVersion, + lastLTSBinVersion, MongoRunner.getBinVersionFor(otherParams.shardOptions.binVersion))) { return true; } for (var i = 0; i < numShards; ++i) { if (otherParams['d' + i] && otherParams['d' + i].binVersion && MongoRunner.areBinVersionsTheSame( - lastStableBinVersion, + lastLTSBinVersion, MongoRunner.getBinVersionFor(otherParams['d' + i].binVersion))) { return true; } } - // Check for 'last-stable' mongos servers. + // Check for 'last-lts' mongos servers. if (otherParams.mongosOptions && otherParams.mongosOptions.binVersion && MongoRunner.areBinVersionsTheSame( - lastStableBinVersion, + lastLTSBinVersion, MongoRunner.getBinVersionFor(otherParams.mongosOptions.binVersion))) { return true; } for (var i = 0; i < numMongos; ++i) { if (otherParams['s' + i] && otherParams['s' + i].binVersion && MongoRunner.areBinVersionsTheSame( - lastStableBinVersion, + lastLTSBinVersion, MongoRunner.getBinVersionFor(otherParams['s' + i].binVersion))) { return true; } @@ -1265,11 +1265,11 @@ 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-stable". + // "last-lts". if (!otherParams.shardOptions.binVersion) { Random.setRandomSeed(); otherParams.shardOptions.binVersion = - MongoRunner.versionIterator(["latest", "last-stable"], true); + MongoRunner.versionIterator(["latest", "last-lts"], true); } } @@ -1340,11 +1340,11 @@ 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-stable". + // "last-lts". if (!otherParams.shardOptions.binVersion) { Random.setRandomSeed(); otherParams.shardOptions.binVersion = - MongoRunner.versionIterator(["latest", "last-stable"], true); + MongoRunner.versionIterator(["latest", "last-lts"], true); } } @@ -1559,7 +1559,7 @@ var ShardingTest = function(params) { if (_hasNewFeatureCompatibilityVersion() && this.isMixedVersionCluster()) { function setFeatureCompatibilityVersion() { assert.commandWorked( - csrsPrimary.adminCommand({setFeatureCompatibilityVersion: lastStableFCV})); + csrsPrimary.adminCommand({setFeatureCompatibilityVersion: lastLTSFCV})); // Wait for the new featureCompatibilityVersion to propagate to all nodes in the CSRS // to ensure that older versions of mongos can successfully connect. @@ -1708,12 +1708,12 @@ var ShardingTest = function(params) { // Ensure that the sessions collection exists so jstests can run things with // logical sessions and test them. We do this by forcing an immediate cache refresh // on the config server, which auto-shards the collection for the cluster. - var lastStableBinVersion = MongoRunner.getBinVersionFor('last-stable'); + var lastLTSBinVersion = MongoRunner.getBinVersionFor('last-lts'); if ((!otherParams.configOptions) || (otherParams.configOptions && !otherParams.configOptions.binVersion) || (otherParams.configOptions && otherParams.configOptions.binVersion && MongoRunner.areBinVersionsTheSame( - lastStableBinVersion, + lastLTSBinVersion, MongoRunner.getBinVersionFor(otherParams.configOptions.binVersion)))) { this.configRS.getPrimary().getDB("admin").runCommand({refreshLogicalSessionCacheNow: 1}); diff --git a/src/mongo/shell/utils.js b/src/mongo/shell/utils.js index 48c3388112b..5f8606dd867 100644 --- a/src/mongo/shell/utils.js +++ b/src/mongo/shell/utils.js @@ -349,8 +349,8 @@ jsTestOptions = function() { roleGraphInvalidationIsFatal: TestData.roleGraphInvalidationIsFatal || false, networkErrorAndTxnOverrideConfig: TestData.networkErrorAndTxnOverrideConfig || {}, // When useRandomBinVersionsWithinReplicaSet is true, randomly assign the binary - // versions of each node in the replica set to 'latest' or 'last-stable'. - // This flag is currently a placeholder and only sets the replica set to last-stable + // versions of each node in the replica set to 'latest' or 'last-lts'. + // This flag is currently a placeholder and only sets the replica set to last-lts // FCV. useRandomBinVersionsWithinReplicaSet: TestData.useRandomBinVersionsWithinReplicaSet || false, |