diff options
author | Benety Goh <benety@mongodb.com> | 2015-02-03 17:13:01 -0500 |
---|---|---|
committer | Benety Goh <benety@mongodb.com> | 2015-02-05 00:18:34 -0500 |
commit | 1e58c0374677a37c09438aa8c21d745cd5b08468 (patch) | |
tree | 805eb3c064b76e2612cbd3fe7e90032f380a08e9 /src/mongo/s | |
parent | 5ee9c2eafe66f72c1f5d28a764bd729aa24be472 (diff) | |
download | mongo-1e58c0374677a37c09438aa8c21d745cd5b08468.tar.gz |
SERVER-15308 SERVER-17150 cancel current command on the primary when the node is stepped down
Diffstat (limited to 'src/mongo/s')
-rw-r--r-- | src/mongo/s/d_migrate.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mongo/s/d_migrate.cpp b/src/mongo/s/d_migrate.cpp index e416e726dd6..22611714860 100644 --- a/src/mongo/s/d_migrate.cpp +++ b/src/mongo/s/d_migrate.cpp @@ -1942,6 +1942,14 @@ namespace mongo { ScopedTransaction transaction(txn, MODE_IX); Lock::DBLock lk(txn->lockState(), nsToDatabaseSubstring(ns), MODE_X); Client::Context ctx(txn, ns); + if (!repl::getGlobalReplicationCoordinator()->canAcceptWritesForDatabase( + nsToDatabaseSubstring(ns))) { + errmsg = str::stream() << "Not primary during migration: " << ns; + warning() << errmsg; + setState(FAIL); + return; + } + Database* db = ctx.db(); Collection* collection = db->getCollection( ns ); if ( !collection ) { |