summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergi Mateo Bellido <sergi.mateo-bellido@mongodb.com>2022-06-17 04:21:24 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-06-20 07:59:31 +0000
commitdd97dc5f81ddce5415fedf539b11246910f8f676 (patch)
tree175f7548d0044bd05ddf05654e5c94ddb216bde3
parentfa24cc60109b36ad0c8f6f8fcce78f93156e7dbb (diff)
downloadmongo-dd97dc5f81ddce5415fedf539b11246910f8f676.tar.gz
Revert "SERVER-66541 Clear the filtering metadata on setFCV"
This reverts commit 7bc0a21e572227371d79553a3263a142752fae56.
-rw-r--r--jstests/multiVersion/internal_sessions_setfcv_wait_for_transaction_coordinator_cleanup.js8
-rw-r--r--jstests/multiVersion/targetedTestsLastLtsFeatures/internal_transactions_transient_error_after_setFCV.js5
-rw-r--r--src/mongo/db/commands/set_feature_compatibility_version_command.cpp46
-rw-r--r--src/mongo/db/s/collection_sharding_state.cpp4
-rw-r--r--src/mongo/db/s/collection_sharding_state.h13
-rw-r--r--src/mongo/db/s/collection_sharding_state_factory_standalone.cpp3
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