summaryrefslogtreecommitdiff
path: root/src/mongo/db/s
diff options
context:
space:
mode:
authorPierlauro Sciarelli <pierlauro.sciarelli@mongodb.com>2022-08-12 08:41:32 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-08-12 09:30:24 +0000
commit412f7c46764ea072c6bd00f6d87197ae54922ab9 (patch)
treeb9bce29d1f6db53df8143d2d90b48dabd6846095 /src/mongo/db/s
parente7ec85efe78433e28875631d0c84b6b537c539cf (diff)
downloadmongo-412f7c46764ea072c6bd00f6d87197ae54922ab9.tar.gz
SERVER-68778 Range deleter observers must ignore "not yet initialized" exceptions
Diffstat (limited to 'src/mongo/db/s')
-rw-r--r--src/mongo/db/s/range_deleter_service_op_observer.cpp31
1 files changed, 27 insertions, 4 deletions
diff --git a/src/mongo/db/s/range_deleter_service_op_observer.cpp b/src/mongo/db/s/range_deleter_service_op_observer.cpp
index 3e598bebd9f..cde58fe5d24 100644
--- a/src/mongo/db/s/range_deleter_service_op_observer.cpp
+++ b/src/mongo/db/s/range_deleter_service_op_observer.cpp
@@ -52,7 +52,15 @@ void RangeDeleterServiceOpObserver::onInserts(OperationContext* opCtx,
auto deletionTask = RangeDeletionTask::parse(
IDLParserContext("RangeDeleterServiceOpObserver"), it->doc);
if (!deletionTask.getPending() || !*(deletionTask.getPending())) {
- (void)RangeDeleterService::get(opCtx)->registerTask(deletionTask);
+ try {
+ (void)RangeDeleterService::get(opCtx)->registerTask(deletionTask);
+ } catch (const DBException& ex) {
+ dassert(ex.code() == ErrorCodes::NotYetInitialized,
+ str::stream()
+ << "No error different from `NotYetInitialized` is expected "
+ "to be propagated to the range deleter observer. Got error: "
+ << ex.toStatus());
+ }
}
}
}
@@ -76,7 +84,15 @@ void RangeDeleterServiceOpObserver::onUpdate(OperationContext* opCtx,
if (pendingFieldIsRemoved || pendingFieldUpdatedToFalse) {
auto deletionTask = RangeDeletionTask::parse(
IDLParserContext("RangeDeleterServiceOpObserver"), args.updateArgs->updatedDoc);
- (void)RangeDeleterService::get(opCtx)->registerTask(deletionTask);
+ try {
+ (void)RangeDeleterService::get(opCtx)->registerTask(deletionTask);
+ } catch (const DBException& ex) {
+ dassert(ex.code() == ErrorCodes::NotYetInitialized,
+ str::stream()
+ << "No error different from `NotYetInitialized` is expected "
+ "to be propagated to the range deleter observer. Got error: "
+ << ex.toStatus());
+ }
}
}
}
@@ -100,8 +116,15 @@ void RangeDeleterServiceOpObserver::onDelete(OperationContext* opCtx,
auto deletionTask =
RangeDeletionTask::parse(IDLParserContext("RangeDeleterServiceOpObserver"), deletedDoc);
- RangeDeleterService::get(opCtx)->deregisterTask(deletionTask.getCollectionUuid(),
- deletionTask.getRange());
+ try {
+ RangeDeleterService::get(opCtx)->deregisterTask(deletionTask.getCollectionUuid(),
+ deletionTask.getRange());
+ } catch (const DBException& ex) {
+ dassert(ex.code() == ErrorCodes::NotYetInitialized,
+ str::stream() << "No error different from `NotYetInitialized` is expected "
+ "to be propagated to the range deleter observer. Got error: "
+ << ex.toStatus());
+ }
}
}