diff options
author | Sergi Mateo Bellido <sergi.mateo-bellido@mongodb.com> | 2022-06-17 04:21:24 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-06-20 07:59:31 +0000 |
commit | dd97dc5f81ddce5415fedf539b11246910f8f676 (patch) | |
tree | 175f7548d0044bd05ddf05654e5c94ddb216bde3 | |
parent | fa24cc60109b36ad0c8f6f8fcce78f93156e7dbb (diff) | |
download | mongo-dd97dc5f81ddce5415fedf539b11246910f8f676.tar.gz |
Revert "SERVER-66541 Clear the filtering metadata on setFCV"
This reverts commit 7bc0a21e572227371d79553a3263a142752fae56.
6 files changed, 4 insertions, 75 deletions
diff --git a/jstests/multiVersion/internal_sessions_setfcv_wait_for_transaction_coordinator_cleanup.js b/jstests/multiVersion/internal_sessions_setfcv_wait_for_transaction_coordinator_cleanup.js index bd56ea89f96..e9b0aea9005 100644 --- a/jstests/multiVersion/internal_sessions_setfcv_wait_for_transaction_coordinator_cleanup.js +++ b/jstests/multiVersion/internal_sessions_setfcv_wait_for_transaction_coordinator_cleanup.js @@ -35,6 +35,8 @@ assert.commandWorked(st.s.adminCommand({split: ns, middle: {_id: 0}})); assert.commandWorked( st.s.adminCommand({moveChunk: ns, find: {_id: 0}, to: participant1.shardName})); +st.refreshCatalogCacheForNs(st.s, ns); + function runTestBasic(lsid) { jsTest.log("Test transaction coordinator documents are deleted before downgrade finishes " + "with lsid: " + tojson(lsid)); @@ -42,9 +44,6 @@ function runTestBasic(lsid) { // Upgrade fcv to make sure cluster is on the latestFCV before starting any transactions. assert.commandWorked(st.s.adminCommand({setFeatureCompatibilityVersion: latestFCV})); - // Upgrading to lastestFCV clears the filtering metadata of all collections. - st.refreshCatalogCacheForNs(st.s, ns); - let commitTxnFp = configureFailPoint(coordinator, "hangBeforeCommitingTxn"); let deleteCoordinatorDocFp = configureFailPoint(coordinator, "hangBeforeDeletingCoordinatorDoc"); @@ -129,9 +128,6 @@ function runTestWithFailoverBeforeDocumentRemoval(lsid) { // Upgrade fcv to make sure cluster is on the latestFCV before starting any transactions. assert.commandWorked(st.s.adminCommand({setFeatureCompatibilityVersion: latestFCV})); - // Upgrading to lastestFCV clears the filtering metadata of all collections. - st.refreshCatalogCacheForNs(st.s, ns); - let commitTxnFp = configureFailPoint(coordinator, "hangBeforeCommitingTxn"); let deleteCoordinatorDocFp = configureFailPoint(coordinator, "hangBeforeDeletingCoordinatorDoc"); diff --git a/jstests/multiVersion/targetedTestsLastLtsFeatures/internal_transactions_transient_error_after_setFCV.js b/jstests/multiVersion/targetedTestsLastLtsFeatures/internal_transactions_transient_error_after_setFCV.js index eccf64190d6..344c4df64b4 100644 --- a/jstests/multiVersion/targetedTestsLastLtsFeatures/internal_transactions_transient_error_after_setFCV.js +++ b/jstests/multiVersion/targetedTestsLastLtsFeatures/internal_transactions_transient_error_after_setFCV.js @@ -31,6 +31,8 @@ assert.commandWorked(st.s.adminCommand({split: ns, middle: {_id: 0}})); assert.commandWorked( st.s.adminCommand({moveChunk: ns, find: {_id: 0}, to: participant1.shardName})); +st.refreshCatalogCacheForNs(st.s, ns); + function runTest(lsid) { jsTest.log("Test that the correct error response is propagated upon losing in memory " + "transaction metadata and durable metadata in the config.transactions collection " + @@ -39,9 +41,6 @@ function runTest(lsid) { // Upgrade fcv to make sure cluster is on the latestFCV before starting any transactions. assert.commandWorked(st.s.adminCommand({setFeatureCompatibilityVersion: latestFCV})); - // Upgrading to lastestFCV clears the filtering metadata of all collections. - st.refreshCatalogCacheForNs(st.s, ns); - // Inserts are split to guarantee that shard0 will be chosen as the coordinator. assert.commandWorked(st.s.getDB(kDbName).runCommand({ insert: kCollName, diff --git a/src/mongo/db/commands/set_feature_compatibility_version_command.cpp b/src/mongo/db/commands/set_feature_compatibility_version_command.cpp index c63a2978e11..40b01cc9944 100644 --- a/src/mongo/db/commands/set_feature_compatibility_version_command.cpp +++ b/src/mongo/db/commands/set_feature_compatibility_version_command.cpp @@ -66,7 +66,6 @@ #include "mongo/db/repl/tenant_migration_recipient_service.h" #include "mongo/db/s/active_migrations_registry.h" #include "mongo/db/s/balancer/balancer.h" -#include "mongo/db/s/collection_sharding_state.h" #include "mongo/db/s/config/configsvr_coordinator_service.h" #include "mongo/db/s/config/sharding_catalog_manager.h" #include "mongo/db/s/migration_coordinator_document_gen.h" @@ -75,11 +74,9 @@ #include "mongo/db/s/resharding/coordinator_document_gen.h" #include "mongo/db/s/resharding/resharding_coordinator_service.h" #include "mongo/db/s/resharding/resharding_donor_recipient_common.h" -#include "mongo/db/s/shard_metadata_util.h" #include "mongo/db/s/sharding_ddl_coordinator_service.h" #include "mongo/db/s/sharding_util.h" #include "mongo/db/s/transaction_coordinator_service.h" -#include "mongo/db/s/type_shard_collection.h" #include "mongo/db/server_feature_flags_gen.h" #include "mongo/db/server_options.h" #include "mongo/db/session_catalog.h" @@ -90,7 +87,6 @@ #include "mongo/idl/cluster_server_parameter_gen.h" #include "mongo/logv2/log.h" #include "mongo/rpc/get_status_from_command_result.h" -#include "mongo/s/catalog/sharding_catalog_client.h" #include "mongo/s/pm2423_feature_flags_gen.h" #include "mongo/s/pm2583_feature_flags_gen.h" #include "mongo/s/refine_collection_shard_key_coordinator_feature_flags_gen.h" @@ -225,20 +221,6 @@ void uassertStatusOKIgnoreNSNotFound(Status status) { uassertStatusOK(status); } -void clearFilteringMetadataOnSecondaries(OperationContext* opCtx, const NamespaceString& collName) { - Status signalStatus = shardmetadatautil::updateShardCollectionsEntry( - opCtx, - BSON(ShardCollectionType::kNssFieldName << collName.ns()), - BSON("$inc" << BSON(ShardCollectionType::kEnterCriticalSectionCounterFieldName << 1)), - false /*upsert*/); - - uassertStatusOKWithContext( - signalStatus, - str::stream() - << "Failed to persist signal to clear the filtering metadata on secondaries for nss " - << collName.ns()); -} - /** * Sets the minimum allowed feature compatibility version for the cluster. The cluster should not * use any new features introduced in binary versions that are newer than the feature compatibility @@ -564,34 +546,6 @@ public: } } - if (requestedVersion == multiversion::FeatureCompatibilityVersion::kVersion_5_3 || - requestedVersion == multiversion::FeatureCompatibilityVersion::kVersion_6_0) { - const auto colls = CollectionShardingState::getCollectionNames(opCtx); - for (const auto& collName : colls) { - try { - if (!collName.isSystemDotViews()) { - { - AutoGetCollection coll(opCtx, collName, MODE_IX); - CollectionShardingState::get(opCtx, collName) - ->clearFilteringMetadata_DoNotUseIt(opCtx); - } - clearFilteringMetadataOnSecondaries(opCtx, collName); - } - } catch (const ExceptionFor<ErrorCodes::CommandNotSupportedOnView>&) { - // Nothing to do since collName is a view - } - } - - // Wait until the signals to clear the filtering metadata on secondary nodes are - // majority committed. - WriteConcernResult ignoreResult; - auto latestOpTime = repl::ReplClientInfo::forClient(opCtx->getClient()).getLastOp(); - uassertStatusOK(waitForWriteConcern(opCtx, - latestOpTime, - ShardingCatalogClient::kMajorityWriteConcern, - &ignoreResult)); - } - // Complete transition by updating the local FCV document to the fully upgraded or // downgraded requestedVersion. const auto fcvChangeRegion(FeatureCompatibilityVersion::enterFCVChangeRegion(opCtx)); diff --git a/src/mongo/db/s/collection_sharding_state.cpp b/src/mongo/db/s/collection_sharding_state.cpp index b8fd37f965e..03cb0dd10fa 100644 --- a/src/mongo/db/s/collection_sharding_state.cpp +++ b/src/mongo/db/s/collection_sharding_state.cpp @@ -157,10 +157,6 @@ std::vector<NamespaceString> CollectionShardingState::getCollectionNames(Operati return collectionsMap->getCollectionNames(); } -void CollectionShardingState::clearFilteringMetadata_DoNotUseIt(OperationContext* opCtx) { - clearFilteringMetadata(opCtx); -} - void CollectionShardingStateFactory::set(ServiceContext* service, std::unique_ptr<CollectionShardingStateFactory> factory) { auto& collectionsMap = CollectionShardingStateMap::get(service); diff --git a/src/mongo/db/s/collection_sharding_state.h b/src/mongo/db/s/collection_sharding_state.h index e15af4cfb31..575ccb85f2f 100644 --- a/src/mongo/db/s/collection_sharding_state.h +++ b/src/mongo/db/s/collection_sharding_state.h @@ -159,19 +159,6 @@ public: * Returns the number of ranges scheduled for deletion on the collection. */ virtual size_t numberOfRangesScheduledForDeletion() const = 0; - - /** - * Public interface to clear the filtering metadata associated to a namespace. Do not use it - * without the consent of the Sharding Team, please. - */ - void clearFilteringMetadata_DoNotUseIt(OperationContext* opCtx); - -private: - /** - * Private interface to clear the filtering metadata. Please, do not make it public. See - * clearFilteringMetadata_DoNotUseIt for more information. - */ - virtual void clearFilteringMetadata(OperationContext* opCtx) = 0; }; /** diff --git a/src/mongo/db/s/collection_sharding_state_factory_standalone.cpp b/src/mongo/db/s/collection_sharding_state_factory_standalone.cpp index 995a5f28c72..6422dc066f1 100644 --- a/src/mongo/db/s/collection_sharding_state_factory_standalone.cpp +++ b/src/mongo/db/s/collection_sharding_state_factory_standalone.cpp @@ -67,9 +67,6 @@ public: size_t numberOfRangesScheduledForDeletion() const override { return 0; } - -private: - void clearFilteringMetadata(OperationContext* opCtx) override {} }; } // namespace |