summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBenety Goh <benety@mongodb.com>2015-06-04 17:20:18 -0400
committerBenety Goh <benety@mongodb.com>2015-06-09 12:38:32 -0400
commitbf906b8adfaab5fc20205482f2d069e27a2c1aa5 (patch)
treeb28cab2a076057570a2a56e5361507e21f32cfb8 /src
parentacc78660cf97acfdb85bb0fd641d14f6d6c29741 (diff)
downloadmongo-bf906b8adfaab5fc20205482f2d069e27a2c1aa5.tar.gz
SERVER-18807 disallow reading from oplog while in rollback
Diffstat (limited to 'src')
-rw-r--r--src/mongo/db/repl/replication_coordinator_impl.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mongo/db/repl/replication_coordinator_impl.cpp b/src/mongo/db/repl/replication_coordinator_impl.cpp
index cb11301a1a9..03b0533eda1 100644
--- a/src/mongo/db/repl/replication_coordinator_impl.cpp
+++ b/src/mongo/db/repl/replication_coordinator_impl.cpp
@@ -1397,6 +1397,10 @@ namespace {
Status ReplicationCoordinatorImpl::checkCanServeReadsFor(OperationContext* txn,
const NamespaceString& ns,
bool slaveOk) {
+ if (_memberState.rollback() && ns.isOplog()) {
+ return Status(ErrorCodes::NotMasterOrSecondaryCode,
+ "cannot read from oplog collection while in rollback");
+ }
if (txn->getClient()->isInDirectClient()) {
return Status::OK();
}