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-20 20:27:05 +0000
commitacef8a36dfb37a1ed2d3db9760724557d2caa794 (patch)
tree883447e393a33893b6cac6aa7244d0cb55bc4f65
parentc8d7be21cf6b6ba10d0bb38191403ed27d5d88cb (diff)
downloadmongo-acef8a36dfb37a1ed2d3db9760724557d2caa794.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 06b08fe4f66..2dc584953d6 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 80ae276c5a3..4035fe97d51 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
@@ -248,6 +248,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) {
@@ -313,9 +321,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();
@@ -372,9 +378,7 @@ TEST_F(RecipientServiceExternalStateTest,
expectListIndexes(kOrigNss, kOrigUUID, indexes, HostAndPort(shards[0].getHost()));
});
- RecipientStateMachineExternalStateImpl externalState;
- externalState.ensureTempReshardingCollectionExistsWithIndexes(
- operationContext(), kMetadata, kDefaultFetchTimestamp);
+ verifyTempReshardingCollectionAndMetadata();
future.default_timed_get();
@@ -440,9 +444,7 @@ TEST_F(RecipientServiceExternalStateTest,
expectListIndexes(kOrigNss, kOrigUUID, indexes, HostAndPort(shards[0].getHost()));
});
- RecipientStateMachineExternalStateImpl externalState;
- externalState.ensureTempReshardingCollectionExistsWithIndexes(
- operationContext(), kMetadata, kDefaultFetchTimestamp);
+ verifyTempReshardingCollectionAndMetadata();
future.default_timed_get();
@@ -510,9 +512,7 @@ TEST_F(RecipientServiceExternalStateTest,
expectListIndexes(kOrigNss, kOrigUUID, indexes, HostAndPort(shards[0].getHost()));
});
- RecipientStateMachineExternalStateImpl externalState;
- externalState.ensureTempReshardingCollectionExistsWithIndexes(
- operationContext(), kMetadata, kDefaultFetchTimestamp);
+ verifyTempReshardingCollectionAndMetadata();
future.default_timed_get();
@@ -570,9 +570,7 @@ TEST_F(RecipientServiceExternalStateTest,
expectListIndexes(kOrigNss, kOrigUUID, indexes, HostAndPort(shards[0].getHost()));
});
- RecipientStateMachineExternalStateImpl externalState;
- externalState.ensureTempReshardingCollectionExistsWithIndexes(
- operationContext(), kMetadata, kDefaultFetchTimestamp);
+ verifyTempReshardingCollectionAndMetadata();
future.default_timed_get();