diff options
author | Siyuan Zhou <siyuan.zhou@mongodb.com> | 2019-01-21 19:11:41 -0500 |
---|---|---|
committer | Siyuan Zhou <siyuan.zhou@mongodb.com> | 2019-01-24 22:49:49 -0500 |
commit | d1933f0b1b88c4c2ad0f2fdd6ab106f7eeacddfa (patch) | |
tree | f28cbc8eb44fa4363c9824e0e772014c0306f433 /src/mongo/db/repl/replication_coordinator_impl_heartbeat.cpp | |
parent | ec4520d72b2a4ff6ba980e913c988b11e7d188a4 (diff) | |
download | mongo-d1933f0b1b88c4c2ad0f2fdd6ab106f7eeacddfa.tar.gz |
SERVER-38282 Yield locks for prepared transactions on stepdown.
Diffstat (limited to 'src/mongo/db/repl/replication_coordinator_impl_heartbeat.cpp')
-rw-r--r-- | src/mongo/db/repl/replication_coordinator_impl_heartbeat.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mongo/db/repl/replication_coordinator_impl_heartbeat.cpp b/src/mongo/db/repl/replication_coordinator_impl_heartbeat.cpp index 39bd6cceffa..ece31e5739d 100644 --- a/src/mongo/db/repl/replication_coordinator_impl_heartbeat.cpp +++ b/src/mongo/db/repl/replication_coordinator_impl_heartbeat.cpp @@ -40,6 +40,7 @@ #include "mongo/base/status.h" #include "mongo/db/concurrency/replication_state_transition_lock_guard.h" +#include "mongo/db/kill_sessions_local.h" #include "mongo/db/logical_clock.h" #include "mongo/db/logical_time_validator.h" #include "mongo/db/operation_context.h" @@ -396,6 +397,9 @@ void ReplicationCoordinatorImpl::_stepDownFinish( rstlLock.waitForLockUntil(Date_t::max()); } + // Yield locks for prepared transactions. + yieldLocksForPreparedTransactions(opCtx.get()); + stdx::unique_lock<stdx::mutex> lk(_mutex); _topCoord->finishUnconditionalStepDown(); |