diff options
author | Benety Goh <benety@mongodb.com> | 2016-11-13 22:23:45 -0500 |
---|---|---|
committer | Benety Goh <benety@mongodb.com> | 2016-11-14 14:19:23 -0500 |
commit | 8b07dc8933006c20de3111eae5face52320ab45a (patch) | |
tree | 5b3ce92f49784c30c8025e30ba7ab72fa3cb02b8 | |
parent | ae0b220d2b0c4088afe34329faadd852db907506 (diff) | |
download | mongo-8b07dc8933006c20de3111eae5face52320ab45a.tar.gz |
SERVER-25662 ReplicationCoordinatorImpl::shutdown() should release data replicator shared_ptr before shutting down external state
-rw-r--r-- | src/mongo/db/repl/replication_coordinator_impl.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mongo/db/repl/replication_coordinator_impl.cpp b/src/mongo/db/repl/replication_coordinator_impl.cpp index e820bbb1f18..2e722da577e 100644 --- a/src/mongo/db/repl/replication_coordinator_impl.cpp +++ b/src/mongo/db/repl/replication_coordinator_impl.cpp @@ -731,7 +731,12 @@ void ReplicationCoordinatorImpl::shutdown(OperationContext* txn) { // joining the replication executor is blocking so it must be run outside of the mutex if (drCopy) { - drCopy->shutdown(txn); + LOG(1) << "ReplicationCoordinatorImpl::shutdown calling DataReplicator::shutdown."; + const auto status = drCopy->shutdown(txn); + if (!status.isOK()) { + warning() << "DataReplicator shutdown failed: " << status; + } + drCopy.reset(); } _externalState->shutdown(txn); _replExecutor.shutdown(); |