summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenety Goh <benety@mongodb.com>2016-11-13 22:23:45 -0500
committerBenety Goh <benety@mongodb.com>2016-11-14 14:19:23 -0500
commit8b07dc8933006c20de3111eae5face52320ab45a (patch)
tree5b3ce92f49784c30c8025e30ba7ab72fa3cb02b8
parentae0b220d2b0c4088afe34329faadd852db907506 (diff)
downloadmongo-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.cpp7
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();