summaryrefslogtreecommitdiff
path: root/src/mongo/s/transaction_router.cpp
diff options
context:
space:
mode:
authorRandolph Tan <randolph@10gen.com>2019-07-09 16:14:31 -0400
committerRandolph Tan <randolph@10gen.com>2019-07-18 14:08:29 -0400
commit36dc61299993ce6473a4660150bfb25a59afce77 (patch)
tree5742a6c76e03880eb20abf7a8fd50c27b868bd63 /src/mongo/s/transaction_router.cpp
parenta4f07aed5277cb31d2422b3dc658b5758d1773ed (diff)
downloadmongo-36dc61299993ce6473a4660150bfb25a59afce77.tar.gz
SERVER-39692 Make mongos shutdown drain all in-progress transactions
Diffstat (limited to 'src/mongo/s/transaction_router.cpp')
-rw-r--r--src/mongo/s/transaction_router.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mongo/s/transaction_router.cpp b/src/mongo/s/transaction_router.cpp
index 1c5c9946ad6..c2bdc3d7f68 100644
--- a/src/mongo/s/transaction_router.cpp
+++ b/src/mongo/s/transaction_router.cpp
@@ -1299,6 +1299,12 @@ void TransactionRouter::Router::_endTransactionTrackingIfNecessary(
{
stdx::lock_guard<Client> lk(*opCtx->getClient());
o(lk).timingStats.endTime = curTicks;
+
+ // If startTime hasn't been set yet, that probably means it run into an error and is
+ // getting aborted.
+ if (o().timingStats.startTime == 0) {
+ o(lk).timingStats.startTime = curTicks;
+ }
}
if (shouldLog(logger::LogComponent::kTransaction, logger::LogSeverity::Debug(1)) ||