summaryrefslogtreecommitdiff
path: root/src/mongo/db/repl/databases_cloner.cpp
diff options
context:
space:
mode:
authorBenety Goh <benety@mongodb.com>2016-07-21 14:56:34 -0400
committerBenety Goh <benety@mongodb.com>2016-07-22 14:39:49 -0400
commitdfe5d4b0b4986c18e8eff3634a3f44b28d4a2197 (patch)
tree11c7b3b8299c9b218929adf2529c7be94bc42d85 /src/mongo/db/repl/databases_cloner.cpp
parent9a8cc7728527c33bb6d0ecdddd0952ce22b61d2a (diff)
downloadmongo-dfe5d4b0b4986c18e8eff3634a3f44b28d4a2197.tar.gz
SERVER-25197 DataReplicator tests should explicitly override CollectionCloner db work scheduler for deterministic behavior.
Diffstat (limited to 'src/mongo/db/repl/databases_cloner.cpp')
-rw-r--r--src/mongo/db/repl/databases_cloner.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/mongo/db/repl/databases_cloner.cpp b/src/mongo/db/repl/databases_cloner.cpp
index cb41c33611e..dd7e8e6996c 100644
--- a/src/mongo/db/repl/databases_cloner.cpp
+++ b/src/mongo/db/repl/databases_cloner.cpp
@@ -179,6 +179,11 @@ Status DatabasesCloner::startup() {
return _status;
}
+void DatabasesCloner::setScheduleDbWorkFn_forTest(const CollectionCloner::ScheduleDbWorkFn& work) {
+ LockGuard lk(_mutex);
+ _scheduleDbWorkFn = work;
+}
+
void DatabasesCloner::_onListDatabaseFinish(const CommandCallbackArgs& cbd) {
Status respStatus = cbd.response.getStatus();
if (respStatus.isOK()) {
@@ -250,6 +255,9 @@ void DatabasesCloner::_onListDatabaseFinish(const CommandCallbackArgs& cbd) {
_storage, // use storage provided.
onCollectionFinish,
onDbFinish));
+ if (_scheduleDbWorkFn) {
+ dbCloner->setScheduleDbWorkFn_forTest(_scheduleDbWorkFn);
+ }
// Start database cloner.
startStatus = dbCloner->start();
} catch (...) {