summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Boros <matt.boros@mongodb.com>2022-01-13 15:54:06 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-01-18 16:06:42 +0000
commita495a8881f30e97775668e5e49b404cf0623fa54 (patch)
tree25cd558b9726a2d1ebe477f654f228e31c19a20f
parentc7db7debed3584e36f8439ee195a489d58412383 (diff)
downloadmongo-a495a8881f30e97775668e5e49b404cf0623fa54.tar.gz
SERVER-62178 Clear filtering metadata on recipient shard primary for temporary resharding collection after creation
(cherry picked from commit e9d49578b3e11044e0e41bdcbb72f41cd17e571c)
-rw-r--r--src/mongo/db/s/resharding/resharding_recipient_service_external_state.cpp4
-rw-r--r--src/mongo/db/s/resharding/resharding_recipient_service_external_state_test.cpp28
2 files changed, 17 insertions, 15 deletions
diff --git a/src/mongo/db/s/resharding/resharding_recipient_service_external_state.cpp b/src/mongo/db/s/resharding/resharding_recipient_service_external_state.cpp
index 660c1e84667..133621fcc77 100644
--- a/src/mongo/db/s/resharding/resharding_recipient_service_external_state.cpp
+++ b/src/mongo/db/s/resharding/resharding_recipient_service_external_state.cpp
@@ -85,6 +85,10 @@ void ReshardingRecipientService::RecipientStateMachineExternalState::
std::move(indexes),
std::move(idIndex),
std::move(collOptions)});
+
+ AutoGetCollection autoColl(opCtx, metadata.getTempReshardingNss(), MODE_IX);
+ CollectionShardingRuntime::get(opCtx, metadata.getTempReshardingNss())
+ ->clearFilteringMetadata(opCtx);
}
template <typename Callable>
diff --git a/src/mongo/db/s/resharding/resharding_recipient_service_external_state_test.cpp b/src/mongo/db/s/resharding/resharding_recipient_service_external_state_test.cpp
index 491aa085f15..44129350344 100644
--- a/src/mongo/db/s/resharding/resharding_recipient_service_external_state_test.cpp
+++ b/src/mongo/db/s/resharding/resharding_recipient_service_external_state_test.cpp
@@ -243,6 +243,14 @@ public:
}
ASSERT_EQ(indexesCopy.size(), 0);
}
+
+ void verifyTempReshardingCollectionAndMetadata() {
+ RecipientStateMachineExternalStateImpl externalState;
+ externalState.ensureTempReshardingCollectionExistsWithIndexes(
+ operationContext(), kMetadata, kDefaultFetchTimestamp);
+ CollectionShardingRuntime csr(getServiceContext(), kOrigNss, executor());
+ ASSERT(csr.getCurrentMetadataIfKnown() == boost::none);
+ }
};
TEST_F(RecipientServiceExternalStateTest, ReshardingConfigServerUpdatesHaveNoTimeout) {
@@ -309,9 +317,7 @@ TEST_F(RecipientServiceExternalStateTest, CreateLocalReshardingCollectionBasic)
expectListIndexes(kOrigNss, kOrigUUID, indexes, HostAndPort(shards[0].getHost()));
});
- RecipientStateMachineExternalStateImpl externalState;
- externalState.ensureTempReshardingCollectionExistsWithIndexes(
- operationContext(), kMetadata, kDefaultFetchTimestamp);
+ verifyTempReshardingCollectionAndMetadata();
future.default_timed_get();
@@ -362,9 +368,7 @@ TEST_F(RecipientServiceExternalStateTest,
expectListIndexes(kOrigNss, kOrigUUID, indexes, HostAndPort(shards[0].getHost()));
});
- RecipientStateMachineExternalStateImpl externalState;
- externalState.ensureTempReshardingCollectionExistsWithIndexes(
- operationContext(), kMetadata, kDefaultFetchTimestamp);
+ verifyTempReshardingCollectionAndMetadata();
future.default_timed_get();
@@ -425,9 +429,7 @@ TEST_F(RecipientServiceExternalStateTest,
expectListIndexes(kOrigNss, kOrigUUID, indexes, HostAndPort(shards[0].getHost()));
});
- RecipientStateMachineExternalStateImpl externalState;
- externalState.ensureTempReshardingCollectionExistsWithIndexes(
- operationContext(), kMetadata, kDefaultFetchTimestamp);
+ verifyTempReshardingCollectionAndMetadata();
future.default_timed_get();
@@ -490,9 +492,7 @@ TEST_F(RecipientServiceExternalStateTest,
expectListIndexes(kOrigNss, kOrigUUID, indexes, HostAndPort(shards[0].getHost()));
});
- RecipientStateMachineExternalStateImpl externalState;
- externalState.ensureTempReshardingCollectionExistsWithIndexes(
- operationContext(), kMetadata, kDefaultFetchTimestamp);
+ verifyTempReshardingCollectionAndMetadata();
future.default_timed_get();
@@ -545,9 +545,7 @@ TEST_F(RecipientServiceExternalStateTest,
expectListIndexes(kOrigNss, kOrigUUID, indexes, HostAndPort(shards[0].getHost()));
});
- RecipientStateMachineExternalStateImpl externalState;
- externalState.ensureTempReshardingCollectionExistsWithIndexes(
- operationContext(), kMetadata, kDefaultFetchTimestamp);
+ verifyTempReshardingCollectionAndMetadata();
future.default_timed_get();