diff options
author | Randolph Tan <randolph@10gen.com> | 2019-07-09 16:14:31 -0400 |
---|---|---|
committer | Randolph Tan <randolph@10gen.com> | 2019-07-18 14:08:29 -0400 |
commit | 36dc61299993ce6473a4660150bfb25a59afce77 (patch) | |
tree | 5742a6c76e03880eb20abf7a8fd50c27b868bd63 /src/mongo/s/transaction_router.cpp | |
parent | a4f07aed5277cb31d2422b3dc658b5758d1773ed (diff) | |
download | mongo-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.cpp | 6 |
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)) || |