summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCheahuychou Mao <mao.cheahuychou@gmail.com>2021-03-16 18:36:09 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2021-03-17 19:22:01 +0000
commit2a7d4e1159ee9484ffd1954b220957b1679b74c2 (patch)
treef5d439bc119e8e4bc9a5cb94b37061c1fff90809 /src
parente3b9f422e0977417f97821e53e436b3692d6037f (diff)
downloadmongo-2a7d4e1159ee9484ffd1954b220957b1679b74c2.tar.gz
SERVER-55234 Ensure that tenant migration abortReason is recovered correctly on stepup recovery
Diffstat (limited to 'src')
-rw-r--r--src/mongo/db/repl/tenant_migration_donor_service.cpp7
-rw-r--r--src/mongo/db/repl/tenant_migration_state_machine.idl2
2 files changed, 6 insertions, 3 deletions
diff --git a/src/mongo/db/repl/tenant_migration_donor_service.cpp b/src/mongo/db/repl/tenant_migration_donor_service.cpp
index 0f4a9dd2859..dd4c7b33173 100644
--- a/src/mongo/db/repl/tenant_migration_donor_service.cpp
+++ b/src/mongo/db/repl/tenant_migration_donor_service.cpp
@@ -232,8 +232,11 @@ TenantMigrationDonorService::Instance::Instance(ServiceContext* const serviceCon
_durableState.state = _stateDoc.getState();
if (_stateDoc.getAbortReason()) {
- _durableState.abortReason =
- getStatusFromCommandResult(_stateDoc.getAbortReason().get());
+ auto abortReasonBson = _stateDoc.getAbortReason().get();
+ auto code = abortReasonBson["code"].Int();
+ auto errmsg = abortReasonBson["errmsg"].String();
+ _durableState.abortReason = Status(ErrorCodes::Error(code), errmsg);
+ _abortReason = _durableState.abortReason;
}
_initialDonorStateDurablePromise.emplaceValue();
diff --git a/src/mongo/db/repl/tenant_migration_state_machine.idl b/src/mongo/db/repl/tenant_migration_state_machine.idl
index c66934af6b1..f8a6291d5a6 100644
--- a/src/mongo/db/repl/tenant_migration_state_machine.idl
+++ b/src/mongo/db/repl/tenant_migration_state_machine.idl
@@ -100,7 +100,7 @@ structs:
or 'aborted'.
optional: true
abortReason:
- type: object
+ type: object_owned
description: "The error that caused the migration to abort."
optional: true
expireAt: