summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBenety Goh <benety@mongodb.com>2018-01-16 21:34:19 -0500
committerBenety Goh <benety@mongodb.com>2018-01-17 17:15:26 -0500
commit13a33d961f6936dc8290b8bb80f5c5b9e599f0a9 (patch)
tree08403c2257a25a567b7b622cb7dd49e09343e563 /src
parentdaf6c4714b45aeb8ba1a09380135b3267c4cc280 (diff)
downloadmongo-13a33d961f6936dc8290b8bb80f5c5b9e599f0a9.tar.gz
SERVER-32284 ReplicationCoordinatorImpl::_doneWaitingForReplication_inlock() always assumes null minSnapshot
Diffstat (limited to 'src')
-rw-r--r--src/mongo/db/repl/replication_coordinator_impl.cpp10
-rw-r--r--src/mongo/db/repl/replication_coordinator_impl.h1
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;