diff options
author | Benety Goh <benety@mongodb.com> | 2018-01-16 21:34:19 -0500 |
---|---|---|
committer | Benety Goh <benety@mongodb.com> | 2018-01-17 17:15:26 -0500 |
commit | 13a33d961f6936dc8290b8bb80f5c5b9e599f0a9 (patch) | |
tree | 08403c2257a25a567b7b622cb7dd49e09343e563 /src/mongo/db | |
parent | daf6c4714b45aeb8ba1a09380135b3267c4cc280 (diff) | |
download | mongo-13a33d961f6936dc8290b8bb80f5c5b9e599f0a9.tar.gz |
SERVER-32284 ReplicationCoordinatorImpl::_doneWaitingForReplication_inlock() always assumes null minSnapshot
Diffstat (limited to 'src/mongo/db')
-rw-r--r-- | src/mongo/db/repl/replication_coordinator_impl.cpp | 10 | ||||
-rw-r--r-- | src/mongo/db/repl/replication_coordinator_impl.h | 1 |
2 files changed, 4 insertions, 7 deletions
diff --git a/src/mongo/db/repl/replication_coordinator_impl.cpp b/src/mongo/db/repl/replication_coordinator_impl.cpp index a7eb61c80e6..7665723648d 100644 --- a/src/mongo/db/repl/replication_coordinator_impl.cpp +++ b/src/mongo/db/repl/replication_coordinator_impl.cpp @@ -1370,7 +1370,7 @@ Status ReplicationCoordinatorImpl::_setLastOptime_inlock(const UpdatePositionArg } bool ReplicationCoordinatorImpl::_doneWaitingForReplication_inlock( - const OpTime& opTime, Timestamp minSnapshot, const WriteConcernOptions& writeConcern) { + const OpTime& opTime, const WriteConcernOptions& writeConcern) { // The syncMode cannot be unset. invariant(writeConcern.syncMode != WriteConcernOptions::SyncMode::UNSET); Status status = _checkIfWriteConcernCanBeSatisfied_inlock(writeConcern); @@ -1394,8 +1394,7 @@ bool ReplicationCoordinatorImpl::_doneWaitingForReplication_inlock( } // Wait for the "current" snapshot to advance to/past the opTime. - const auto haveSnapshot = (_currentCommittedSnapshot >= opTime && - _currentCommittedSnapshot->getTimestamp() >= minSnapshot); + const auto haveSnapshot = _currentCommittedSnapshot >= opTime; if (!haveSnapshot) { LOG(1) << "Required snapshot optime: " << opTime << " is not yet part of the " << "current 'committed' snapshot: " << *_currentCommittedSnapshot; @@ -1512,7 +1511,7 @@ Status ReplicationCoordinatorImpl::_awaitReplication_inlock( stdx::condition_variable condVar; ThreadWaiter waiter(opTime, &writeConcern, &condVar); WaiterGuard guard(&_replicationWaiterList, &waiter); - while (!_doneWaitingForReplication_inlock(opTime, {}, writeConcern)) { + while (!_doneWaitingForReplication_inlock(opTime, writeConcern)) { if (_inShutdown) { return {ErrorCodes::ShutdownInProgress, "Replication is being shut down"}; @@ -2808,8 +2807,7 @@ ReplicationCoordinatorImpl::_setCurrentRSConfig_inlock(OperationContext* opCtx, void ReplicationCoordinatorImpl::_wakeReadyWaiters_inlock() { _replicationWaiterList.signalAndRemoveIf_inlock([this](Waiter* waiter) { - return _doneWaitingForReplication_inlock( - waiter->opTime, Timestamp(), *waiter->writeConcern); + return _doneWaitingForReplication_inlock(waiter->opTime, *waiter->writeConcern); }); } diff --git a/src/mongo/db/repl/replication_coordinator_impl.h b/src/mongo/db/repl/replication_coordinator_impl.h index 8dda54b5ba5..d7bba16c291 100644 --- a/src/mongo/db/repl/replication_coordinator_impl.h +++ b/src/mongo/db/repl/replication_coordinator_impl.h @@ -623,7 +623,6 @@ private: * minSnapshot. */ bool _doneWaitingForReplication_inlock(const OpTime& opTime, - Timestamp minSnapshot, const WriteConcernOptions& writeConcern); Status _checkIfWriteConcernCanBeSatisfied_inlock(const WriteConcernOptions& writeConcern) const; |