summaryrefslogtreecommitdiff
path: root/src/mongo/db/instance.cpp
diff options
context:
space:
mode:
authorEric Milkie <milkie@10gen.com>2015-01-30 10:06:35 -0500
committerEric Milkie <milkie@10gen.com>2015-01-30 10:06:35 -0500
commit8e11987b6f7f393bbf1c468f7626d2a4993ae0cb (patch)
treea907167a9ed72616a704830bfb01d0efd541db38 /src/mongo/db/instance.cpp
parent94cb08d1d1a14733ebe875f941f4ec1eb8a44b91 (diff)
downloadmongo-8e11987b6f7f393bbf1c468f7626d2a4993ae0cb.tar.gz
SERVER-17129 check canAcceptWrites before implicitly creating ns for legacy upsert
Diffstat (limited to 'src/mongo/db/instance.cpp')
-rw-r--r--src/mongo/db/instance.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mongo/db/instance.cpp b/src/mongo/db/instance.cpp
index 1a72346d9a9..d8f8c26fba6 100644
--- a/src/mongo/db/instance.cpp
+++ b/src/mongo/db/instance.cpp
@@ -634,6 +634,10 @@ namespace mongo {
ScopedTransaction transaction(txn, MODE_IX);
Lock::DBLock dbLock(txn->lockState(), ns.db(), MODE_X);
Client::Context ctx(txn, ns);
+ uassert(ErrorCodes::NotMaster,
+ str::stream() << "Not primary while performing update on " << ns.ns(),
+ repl::getGlobalReplicationCoordinator()->canAcceptWritesForDatabase(ns.db()));
+
Database* db = ctx.db();
if ( db->getCollection( ns ) ) {
// someone else beat us to it, that's ok