diff options
author | Cheahuychou Mao <mao.cheahuychou@gmail.com> | 2021-03-16 18:36:09 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2021-03-17 19:22:01 +0000 |
commit | 2a7d4e1159ee9484ffd1954b220957b1679b74c2 (patch) | |
tree | f5d439bc119e8e4bc9a5cb94b37061c1fff90809 /src | |
parent | e3b9f422e0977417f97821e53e436b3692d6037f (diff) | |
download | mongo-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.cpp | 7 | ||||
-rw-r--r-- | src/mongo/db/repl/tenant_migration_state_machine.idl | 2 |
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: |