-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
Fully Compatible
-
ALL
-
Server Serverless 2022-01-24, Server Serverless 2022-02-07
The contract is that fetcher callback should not throw exceptions, breaching that contract causes the server to crash (due to uncaught exceptions).
[js_test:tenant_migration_donor_try_abort] d20067| {"t":{"$date":"2022-01-04T18:44:02.375+00:00"},"s":"F", "c":"CONTROL", "id":4757800, "ctx":"TenantMigrationRecipientService-1","msg":"Writing fatal message","attr":{"message":"terminate() called. An exception is active; attempting to gather more information"}} [js_test:tenant_migration_donor_try_abort] d20067| {"t":{"$date":"2022-01-04T18:44:02.375+00:00"},"s":"F", "c":"CONTROL", "id":4757800, "ctx":"TenantMigrationRecipientService-1","msg":"Writing fatal message","attr":{"message":"DBException::toString(): InterruptedDueToReplStateChange: operation was interrupted\nActual exception type: mongo::error_details::ExceptionForImpl<(mongo::ErrorCodes::Error)11602, mongo::ExceptionForCat<(mongo::ErrorCategory)2>, mongo::ExceptionForCat<(mongo::ErrorCategory)3>, mongo::ExceptionForCat<(mongo::ErrorCategory)14> >\n"}}
We do some write ops (create collection and insert documents) in _donorFilenameBackupCursorFileFetcher's callback. If a node shuts down or steps down, we interrupt the opCtx used by the writeOps that causes the write operation to fail and throw.
- depends on
-
SERVER-61131 Store backup cursor results and set state to "learned filenames"
- Closed