diff options
author | eshamaharishi <em2852@columbia.edu> | 2018-10-22 20:20:09 -0400 |
---|---|---|
committer | eshamaharishi <em2852@columbia.edu> | 2018-10-22 21:31:00 -0400 |
commit | f1a09f94a1f17b40b096ac0e6129e693b026e915 (patch) | |
tree | f63ad48d7448f0794a9db0151581045bb7eb965e /src/mongo/s/transaction_router.cpp | |
parent | 1e19472175d9f8c26d2cc1a80e108a0a4a761213 (diff) | |
download | mongo-f1a09f94a1f17b40b096ac0e6129e693b026e915.tar.gz |
Revert "SERVER-37703 Put back early return that was accidentally removed from if block in TransactionRouter::commitTransaction"
This reverts commit 206c9e47924073d426df60624a539b792bd04047.
Revert "SERVER-37703 TransactionRouter::commitTransaction does not need to return the coordinator's response to the caller"
This reverts commit 7a1cf7b8cc5751cd19ced4186ab575b8827d22dd.
Diffstat (limited to 'src/mongo/s/transaction_router.cpp')
-rw-r--r-- | src/mongo/s/transaction_router.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/mongo/s/transaction_router.cpp b/src/mongo/s/transaction_router.cpp index bf90df09ef8..f1b55cc1ff9 100644 --- a/src/mongo/s/transaction_router.cpp +++ b/src/mongo/s/transaction_router.cpp @@ -555,7 +555,8 @@ void TransactionRouter::beginOrContinueTxn(OperationContext* opCtx, } } -void TransactionRouter::_commitSingleShardTransaction(OperationContext* opCtx) { + +Shard::CommandResponse TransactionRouter::_commitSingleShardTransaction(OperationContext* opCtx) { auto shardRegistry = Grid::get(opCtx)->shardRegistry(); auto citer = _participants.cbegin(); @@ -566,7 +567,7 @@ void TransactionRouter::_commitSingleShardTransaction(OperationContext* opCtx) { commitCmd.setDbName("admin"); const auto& participant = citer->second; - uassertStatusOK(shard->runCommandWithFixedRetryAttempts( + return uassertStatusOK(shard->runCommandWithFixedRetryAttempts( opCtx, ReadPreferenceSetting{ReadPreference::PrimaryOnly}, "admin", @@ -575,7 +576,7 @@ void TransactionRouter::_commitSingleShardTransaction(OperationContext* opCtx) { Shard::RetryPolicy::kIdempotent)); } -void TransactionRouter::_commitMultiShardTransaction(OperationContext* opCtx) { +Shard::CommandResponse TransactionRouter::_commitMultiShardTransaction(OperationContext* opCtx) { invariant(_coordinatorId); auto shardRegistry = Grid::get(opCtx)->shardRegistry(); @@ -618,7 +619,7 @@ void TransactionRouter::_commitMultiShardTransaction(OperationContext* opCtx) { auto coordinatorIter = _participants.find(*_coordinatorId); invariant(coordinatorIter != _participants.end()); - uassertStatusOK(coordinatorShard->runCommandWithFixedRetryAttempts( + return uassertStatusOK(coordinatorShard->runCommandWithFixedRetryAttempts( opCtx, ReadPreferenceSetting{ReadPreference::PrimaryOnly}, "admin", @@ -627,15 +628,14 @@ void TransactionRouter::_commitMultiShardTransaction(OperationContext* opCtx) { Shard::RetryPolicy::kIdempotent)); } -void TransactionRouter::commitTransaction(OperationContext* opCtx) { +Shard::CommandResponse TransactionRouter::commitTransaction(OperationContext* opCtx) { uassert(50940, "cannot commit with no participants", !_participants.empty()); if (_participants.size() == 1) { - _commitSingleShardTransaction(opCtx); - return; + return _commitSingleShardTransaction(opCtx); } - _commitMultiShardTransaction(opCtx); + return _commitMultiShardTransaction(opCtx); } std::vector<AsyncRequestsSender::Response> TransactionRouter::abortTransaction( |