diff --git a/src/mongo/db/s/migration_util_test.cpp b/src/mongo/db/s/migration_util_test.cpp
|
index e6e4deaebb..001c307bbb 100644
|
--- a/src/mongo/db/s/migration_util_test.cpp
|
+++ b/src/mongo/db/s/migration_util_test.cpp
|
@@ -378,6 +378,31 @@ TEST_F(MigrationUtilsTest, TestInvalidUUID) {
|
|
using SubmitRangeDeletionTaskTest = MigrationUtilsTest;
|
|
+TEST_F(SubmitRangeDeletionTaskTest,
|
+ FailsAndDeletesTaskIfFilteringMetadataIsUnknownEvenAfterRefresh) {
|
+ auto opCtx = operationContext();
|
+
|
+ const auto uuid = UUID::gen();
|
+ auto deletionTask = createDeletionTask(kNss, uuid, 0, 10);
|
+
|
+ PersistentTaskStore<RangeDeletionTask> store(opCtx, NamespaceString::kRangeDeletionNamespace);
|
+ store.add(opCtx, deletionTask);
|
+ ASSERT_EQ(store.count(opCtx), 1);
|
+
|
+ // Make the refresh triggered by submitting the task return an empty result so that .
|
+ auto result =
|
+ stdx::async(stdx::launch::async, [this, uuid] {
|
+ respondToMetadataRefreshRequestsWithError();
|
+ });
|
+
|
+ auto submitTaskFuture = migrationutil::submitRangeDeletionTask(opCtx, deletionTask);
|
+
|
+ // The task should not have been submitted, and the task's entry should have been removed from
|
+ // the persistent store.
|
+ ASSERT_FALSE(submitTaskFuture.get(opCtx));
|
+ ASSERT_EQ(store.count(opCtx), 0);
|
+}
|
+
|
TEST_F(SubmitRangeDeletionTaskTest, SucceedsIfFilteringMetadataUUIDMatchesTaskUUID) {
|
auto opCtx = operationContext();
|
|