summaryrefslogtreecommitdiff
path: root/src/mongo/db/cloner.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mongo/db/cloner.cpp')
-rw-r--r--src/mongo/db/cloner.cpp31
1 files changed, 16 insertions, 15 deletions
diff --git a/src/mongo/db/cloner.cpp b/src/mongo/db/cloner.cpp
index 7ea8669ec4f..6aa2f1cdb33 100644
--- a/src/mongo/db/cloner.cpp
+++ b/src/mongo/db/cloner.cpp
@@ -145,12 +145,13 @@ struct Cloner::Fun {
// XXX: can probably take dblock instead
unique_ptr<ScopedTransaction> scopedXact(new ScopedTransaction(txn, MODE_X));
unique_ptr<Lock::GlobalWrite> globalWriteLock(new Lock::GlobalWrite(txn->lockState()));
- uassert(ErrorCodes::NotMaster,
- str::stream() << "Not primary while cloning collection " << from_collection.ns()
- << " to "
- << to_collection.ns(),
- !txn->writesAreReplicated() ||
- repl::getGlobalReplicationCoordinator()->canAcceptWritesFor(to_collection));
+ uassert(
+ ErrorCodes::NotMaster,
+ str::stream() << "Not primary while cloning collection " << from_collection.ns()
+ << " to "
+ << to_collection.ns(),
+ !txn->writesAreReplicated() ||
+ repl::getGlobalReplicationCoordinator()->canAcceptWritesFor(txn, to_collection));
// Make sure database still exists after we resume from the temp release
Database* db = dbHolder().openDb(txn, _dbName);
@@ -204,11 +205,11 @@ struct Cloner::Fun {
// Check if everything is still all right.
if (txn->writesAreReplicated()) {
- uassert(
- 28592,
- str::stream() << "Cannot write to ns: " << to_collection.ns()
- << " after yielding",
- repl::getGlobalReplicationCoordinator()->canAcceptWritesFor(to_collection));
+ uassert(28592,
+ str::stream() << "Cannot write to ns: " << to_collection.ns()
+ << " after yielding",
+ repl::getGlobalReplicationCoordinator()->canAcceptWritesFor(
+ txn, to_collection));
}
// TODO: SERVER-16598 abort if original db or collection is gone.
@@ -349,7 +350,7 @@ void Cloner::copy(OperationContext* txn,
<< " with filter "
<< query.toString(),
!txn->writesAreReplicated() ||
- repl::getGlobalReplicationCoordinator()->canAcceptWritesFor(to_collection));
+ repl::getGlobalReplicationCoordinator()->canAcceptWritesFor(txn, to_collection));
}
void Cloner::copyIndexes(OperationContext* txn,
@@ -372,7 +373,7 @@ void Cloner::copyIndexes(OperationContext* txn,
<< to_collection.ns()
<< " (Cloner)",
!txn->writesAreReplicated() ||
- repl::getGlobalReplicationCoordinator()->canAcceptWritesFor(to_collection));
+ repl::getGlobalReplicationCoordinator()->canAcceptWritesFor(txn, to_collection));
if (indexesToBuild.empty())
@@ -479,7 +480,7 @@ bool Cloner::copyCollection(OperationContext* txn,
uassert(ErrorCodes::PrimarySteppedDown,
str::stream() << "Not primary while copying collection " << ns << " (Cloner)",
!txn->writesAreReplicated() ||
- repl::getGlobalReplicationCoordinator()->canAcceptWritesFor(nss));
+ repl::getGlobalReplicationCoordinator()->canAcceptWritesFor(txn, nss));
Database* db = dbHolder().openDb(txn, dbname);
@@ -704,7 +705,7 @@ Status Cloner::copyDb(OperationContext* txn,
str::stream() << "Not primary while cloning database " << opts.fromDB
<< " (after getting list of collections to clone)",
!txn->writesAreReplicated() ||
- repl::getGlobalReplicationCoordinator()->canAcceptWritesForDatabase(toDBName));
+ repl::getGlobalReplicationCoordinator()->canAcceptWritesForDatabase(txn, toDBName));
if (opts.syncData) {
if (opts.createCollections) {