diff options
author | Benety Goh <benety@mongodb.com> | 2016-08-15 12:09:19 -0400 |
---|---|---|
committer | Benety Goh <benety@mongodb.com> | 2016-08-15 15:15:35 -0400 |
commit | 9ce3e307d4d7bec5796b75515428d507037998f4 (patch) | |
tree | 311d19d3fc1ce9f719fc2d29cac81c6a5d7afe1a /src/mongo/db/repl/data_replicator.cpp | |
parent | 8fe1f780342d51cbb8e89546b28682cc0fad4e3f (diff) | |
download | mongo-9ce3e307d4d7bec5796b75515428d507037998f4.tar.gz |
SERVER-25609 DataReplicator::_onDataCloneFinish should not set InitialSyncState status on cancellation
Diffstat (limited to 'src/mongo/db/repl/data_replicator.cpp')
-rw-r--r-- | src/mongo/db/repl/data_replicator.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mongo/db/repl/data_replicator.cpp b/src/mongo/db/repl/data_replicator.cpp index 75ebf8c72e9..d90e947cd59 100644 --- a/src/mongo/db/repl/data_replicator.cpp +++ b/src/mongo/db/repl/data_replicator.cpp @@ -575,6 +575,11 @@ Status DataReplicator::_runInitialSyncAttempt_inlock(OperationContext* txn, _exec->waitForEvent(initialSyncFinishEvent); log() << "Initial sync finished applying oplog entries."; + lk.lock(); + if (!_initialSyncState->status.isOK()) { + return _initialSyncState->status; + } + lk.unlock(); // Check for roll back, and fail if so. auto hasHadRollbackResponse = rollbackChecker.hasHadRollback(); @@ -743,6 +748,9 @@ StatusWith<OpTimeWithHash> DataReplicator::doInitialSync(OperationContext* txn, void DataReplicator::_onDataClonerFinish(const Status& status, HostAndPort syncSource) { log() << "data clone finished, status: " << status.toString(); + if (status.code() == ErrorCodes::CallbackCanceled) { + return; + } if (!status.isOK()) { // Initial sync failed during cloning of databases error() << "Failed to clone data due to '" << status << "'"; |