diff options
author | Pierlauro Sciarelli <pierlauro.sciarelli@mongodb.com> | 2022-08-12 08:41:32 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2022-08-12 09:30:24 +0000 |
commit | 412f7c46764ea072c6bd00f6d87197ae54922ab9 (patch) | |
tree | b9bce29d1f6db53df8143d2d90b48dabd6846095 /src/mongo | |
parent | e7ec85efe78433e28875631d0c84b6b537c539cf (diff) | |
download | mongo-412f7c46764ea072c6bd00f6d87197ae54922ab9.tar.gz |
SERVER-68778 Range deleter observers must ignore "not yet initialized" exceptions
Diffstat (limited to 'src/mongo')
-rw-r--r-- | src/mongo/db/s/range_deleter_service_op_observer.cpp | 31 |
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()); + } } } |