summaryrefslogtreecommitdiff
path: root/src/mongo/db
diff options
context:
space:
mode:
authorHari Khalsa <hkhalsa@10gen.com>2014-06-04 14:18:22 -0400
committerHari Khalsa <hkhalsa@10gen.com>2014-06-05 13:48:45 -0400
commit52c525dfb3b222a36e99986575e16725245389c5 (patch)
tree15d258bd445271110718bfcd4c1b555e8651725e /src/mongo/db
parent580141520aab378006d3c8d36daad42813886b88 (diff)
downloadmongo-52c525dfb3b222a36e99986575e16725245389c5.tar.gz
SERVER-14069 introduce globalConfigExperiment for storage/op mgmt, make range deleter use it
Diffstat (limited to 'src/mongo/db')
-rw-r--r--src/mongo/db/db.cpp7
-rw-r--r--src/mongo/db/global_environment_d.cpp48
-rw-r--r--src/mongo/db/global_environment_d.h46
-rw-r--r--src/mongo/db/global_environment_experiment.cpp56
-rw-r--r--src/mongo/db/global_environment_experiment.h86
-rw-r--r--src/mongo/db/global_environment_noop.cpp46
-rw-r--r--src/mongo/db/global_environment_noop.h42
-rw-r--r--src/mongo/db/kill_current_op.h14
-rw-r--r--src/mongo/db/range_deleter.cpp20
-rw-r--r--src/mongo/db/range_deleter.h3
-rw-r--r--src/mongo/db/range_deleter_mock_env.cpp5
-rw-r--r--src/mongo/db/range_deleter_stat_test.cpp9
-rw-r--r--src/mongo/db/range_deleter_test.cpp24
13 files changed, 362 insertions, 44 deletions
diff --git a/src/mongo/db/db.cpp b/src/mongo/db/db.cpp
index 476d7bb65ea..3c4cf7d8002 100644
--- a/src/mongo/db/db.cpp
+++ b/src/mongo/db/db.cpp
@@ -53,6 +53,8 @@
#include "mongo/db/db.h"
#include "mongo/db/dbmessage.h"
#include "mongo/db/dbwebserver.h"
+#include "mongo/db/global_environment_d.h"
+#include "mongo/db/global_environment_experiment.h"
#include "mongo/db/index_names.h"
#include "mongo/db/index_rebuilder.h"
#include "mongo/db/initialize_server_global_state.h"
@@ -942,6 +944,11 @@ MONGO_INITIALIZER_GENERAL(CreateAuthorizationManager,
return Status::OK();
}
+MONGO_INITIALIZER(SetGlobalConfigExperiment)(InitializerContext* context) {
+ setGlobalEnvironment(new GlobalEnvironmentMongoD());
+ return Status::OK();
+}
+
#ifdef MONGO_SSL
MONGO_INITIALIZER_GENERAL(setSSLManagerType,
MONGO_NO_PREREQUISITES,
diff --git a/src/mongo/db/global_environment_d.cpp b/src/mongo/db/global_environment_d.cpp
new file mode 100644
index 00000000000..a7bb8779556
--- /dev/null
+++ b/src/mongo/db/global_environment_d.cpp
@@ -0,0 +1,48 @@
+/**
+ * Copyright (C) 2014 MongoDB Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * As a special exception, the copyright holders give permission to link the
+ * code of portions of this program with the OpenSSL library under certain
+ * conditions as described in each individual source file and distribute
+ * linked combinations including the program with the OpenSSL library. You
+ * must comply with the GNU Affero General Public License in all respects for
+ * all of the code used other than as permitted herein. If you modify file(s)
+ * with this exception, you may extend this exception to your version of the
+ * file(s), but you are not obligated to do so. If you do not wish to do so,
+ * delete this exception statement from your version. If you delete this
+ * exception statement from all source files in the program, then also delete
+ * it in the license file.
+ */
+
+#include "mongo/db/global_environment_d.h"
+
+#include "mongo/db/kill_current_op.h"
+#include "mongo/db/operation_context_impl.h"
+
+namespace mongo {
+
+ void GlobalEnvironmentMongoD::killAllOperations() {
+ killCurrentOp.killAll();
+ }
+
+ bool GlobalEnvironmentMongoD::killOperation(AtomicUInt opId) {
+ return killCurrentOp.kill(opId);
+ }
+
+ OperationContext* GlobalEnvironmentMongoD::newOpCtx() {
+ return new OperationContextImpl();
+ }
+
+} // namespace mongo
diff --git a/src/mongo/db/global_environment_d.h b/src/mongo/db/global_environment_d.h
new file mode 100644
index 00000000000..5fb656bef08
--- /dev/null
+++ b/src/mongo/db/global_environment_d.h
@@ -0,0 +1,46 @@
+/**
+ * Copyright (C) 2014 MongoDB Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * As a special exception, the copyright holders give permission to link the
+ * code of portions of this program with the OpenSSL library under certain
+ * conditions as described in each individual source file and distribute
+ * linked combinations including the program with the OpenSSL library. You
+ * must comply with the GNU Affero General Public License in all respects for
+ * all of the code used other than as permitted herein. If you modify file(s)
+ * with this exception, you may extend this exception to your version of the
+ * file(s), but you are not obligated to do so. If you do not wish to do so,
+ * delete this exception statement from your version. If you delete this
+ * exception statement from all source files in the program, then also delete
+ * it in the license file.
+ */
+
+#pragma once
+
+#include "mongo/db/global_environment_experiment.h"
+
+namespace mongo {
+
+ class GlobalEnvironmentMongoD : public GlobalEnvironmentExperiment {
+ public:
+ GlobalEnvironmentMongoD() { }
+
+ void killAllOperations();
+
+ bool killOperation(AtomicUInt opId);
+
+ OperationContext* newOpCtx();
+ };
+
+} // namespace mongo
diff --git a/src/mongo/db/global_environment_experiment.cpp b/src/mongo/db/global_environment_experiment.cpp
new file mode 100644
index 00000000000..53f0b1959da
--- /dev/null
+++ b/src/mongo/db/global_environment_experiment.cpp
@@ -0,0 +1,56 @@
+/**
+ * Copyright (C) 2014 MongoDB Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * As a special exception, the copyright holders give permission to link the
+ * code of portions of this program with the OpenSSL library under certain
+ * conditions as described in each individual source file and distribute
+ * linked combinations including the program with the OpenSSL library. You
+ * must comply with the GNU Affero General Public License in all respects for
+ * all of the code used other than as permitted herein. If you modify file(s)
+ * with this exception, you may extend this exception to your version of the
+ * file(s), but you are not obligated to do so. If you do not wish to do so,
+ * delete this exception statement from your version. If you delete this
+ * exception statement from all source files in the program, then also delete
+ * it in the license file.
+ */
+
+#include "mongo/db/global_environment_experiment.h"
+
+#include "mongo/db/operation_context.h"
+
+namespace mongo {
+
+ namespace {
+
+ GlobalEnvironmentExperiment* globalEnvironmentExperiment = NULL;
+
+ } // namespace
+
+ GlobalEnvironmentExperiment* getGlobalEnvironment() {
+ fassert(17506, globalEnvironmentExperiment);
+ return globalEnvironmentExperiment;
+ }
+
+ void setGlobalEnvironment(GlobalEnvironmentExperiment* newGlobalEnvironment) {
+ fassert(17507, newGlobalEnvironment);
+
+ if (NULL != globalEnvironmentExperiment) {
+ delete globalEnvironmentExperiment;
+ }
+
+ globalEnvironmentExperiment = newGlobalEnvironment;
+ }
+
+} // namespace mongo
diff --git a/src/mongo/db/global_environment_experiment.h b/src/mongo/db/global_environment_experiment.h
new file mode 100644
index 00000000000..36eff172360
--- /dev/null
+++ b/src/mongo/db/global_environment_experiment.h
@@ -0,0 +1,86 @@
+/**
+ * Copyright (C) 2014 MongoDB Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * As a special exception, the copyright holders give permission to link the
+ * code of portions of this program with the OpenSSL library under certain
+ * conditions as described in each individual source file and distribute
+ * linked combinations including the program with the OpenSSL library. You
+ * must comply with the GNU Affero General Public License in all respects for
+ * all of the code used other than as permitted herein. If you modify file(s)
+ * with this exception, you may extend this exception to your version of the
+ * file(s), but you are not obligated to do so. If you do not wish to do so,
+ * delete this exception statement from your version. If you delete this
+ * exception statement from all source files in the program, then also delete
+ * it in the license file.
+ */
+
+#pragma once
+
+#include "mongo/base/disallow_copying.h"
+#include "mongo/bson/util/atomic_int.h"
+
+namespace mongo {
+
+ class OperationContext;
+
+ class GlobalEnvironmentExperiment {
+ MONGO_DISALLOW_COPYING(GlobalEnvironmentExperiment);
+ public:
+ virtual ~GlobalEnvironmentExperiment() { }
+
+ //
+ // Global operation management. This may not belong here.
+ //
+
+ /**
+ * Signal all OperationContext(s) that they have been killed.
+ */
+ virtual void killAllOperations() = 0;
+
+ /**
+ * @param i opid of operation to kill
+ * @return if operation was found
+ **/
+ virtual bool killOperation(AtomicUInt opId) = 0;
+
+ //
+ // Factories for storage interfaces
+ //
+
+ /**
+ * Returns a new OperationContext. Caller owns pointer.
+ */
+ virtual OperationContext* newOpCtx() = 0;
+
+ protected:
+ GlobalEnvironmentExperiment() { }
+ };
+
+ /**
+ * Returns the singleton GlobalEnvironmentExperiment for this server process.
+ *
+ * Caller does not own pointer.
+ */
+ GlobalEnvironmentExperiment* getGlobalEnvironment();
+
+ /**
+ * Sets the GlobalEnvironmentExperiment. If 'globalEnvironment' is NULL, un-sets and deletes the current
+ * GlobalEnvironmentExperiment.
+ *
+ * Takes ownership of 'globalEnvironment'.
+ */
+ void setGlobalEnvironment(GlobalEnvironmentExperiment* globalEnvironment);
+
+} // namespace mongo
diff --git a/src/mongo/db/global_environment_noop.cpp b/src/mongo/db/global_environment_noop.cpp
new file mode 100644
index 00000000000..713e26bd71c
--- /dev/null
+++ b/src/mongo/db/global_environment_noop.cpp
@@ -0,0 +1,46 @@
+/**
+ * Copyright (C) 2014 MongoDB Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * As a special exception, the copyright holders give permission to link the
+ * code of portions of this program with the OpenSSL library under certain
+ * conditions as described in each individual source file and distribute
+ * linked combinations including the program with the OpenSSL library. You
+ * must comply with the GNU Affero General Public License in all respects for
+ * all of the code used other than as permitted herein. If you modify file(s)
+ * with this exception, you may extend this exception to your version of the
+ * file(s), but you are not obligated to do so. If you do not wish to do so,
+ * delete this exception statement from your version. If you delete this
+ * exception statement from all source files in the program, then also delete
+ * it in the license file.
+ */
+
+#include "mongo/db/global_environment_noop.h"
+
+#include "mongo/db/operation_context_noop.h"
+
+namespace mongo {
+
+ void GlobalEnvironmentNoop::killAllOperations() {
+ }
+
+ bool GlobalEnvironmentNoop::killOperation(AtomicUInt opId) {
+ return false;
+ }
+
+ OperationContext* GlobalEnvironmentNoop::newOpCtx() {
+ return new OperationContextNoop();
+ }
+
+} // namespace mongo
diff --git a/src/mongo/db/global_environment_noop.h b/src/mongo/db/global_environment_noop.h
new file mode 100644
index 00000000000..162e6baae11
--- /dev/null
+++ b/src/mongo/db/global_environment_noop.h
@@ -0,0 +1,42 @@
+/**
+ * Copyright (C) 2014 MongoDB Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License, version 3,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * As a special exception, the copyright holders give permission to link the
+ * code of portions of this program with the OpenSSL library under certain
+ * conditions as described in each individual source file and distribute
+ * linked combinations including the program with the OpenSSL library. You
+ * must comply with the GNU Affero General Public License in all respects for
+ * all of the code used other than as permitted herein. If you modify file(s)
+ * with this exception, you may extend this exception to your version of the
+ * file(s), but you are not obligated to do so. If you do not wish to do so,
+ * delete this exception statement from your version. If you delete this
+ * exception statement from all source files in the program, then also delete
+ * it in the license file.
+ */
+
+#include "mongo/db/global_environment_experiment.h"
+
+namespace mongo {
+
+ class GlobalEnvironmentNoop : public GlobalEnvironmentExperiment {
+ public:
+ void killAllOperations();
+
+ bool killOperation(AtomicUInt opId);
+
+ OperationContext* newOpCtx();
+ };
+
+} // namespace mongo
diff --git a/src/mongo/db/kill_current_op.h b/src/mongo/db/kill_current_op.h
index 55557d0b194..3cb70c6a21a 100644
--- a/src/mongo/db/kill_current_op.h
+++ b/src/mongo/db/kill_current_op.h
@@ -1,5 +1,4 @@
-
-/*
+/**
* Copyright (C) 2010 10gen Inc.
*
* This program is free software: you can redistribute it and/or modify
@@ -47,29 +46,29 @@ namespace mongo {
MONGO_DISALLOW_COPYING(KillCurrentOp);
public:
KillCurrentOp() : _globalKill(false) {}
+
void killAll();
+
/**
* @param i opid of operation to kill
* @return if operation was found
**/
bool kill(AtomicUInt i);
- /** @return true if global interrupt and should terminate the operation */
- bool globalInterruptCheck() const { return _globalKill; }
-
/**
* @param heedMutex if true and have a write lock, won't kill op since it might be unsafe
*/
void checkForInterrupt( bool heedMutex = true );
/** @return "" if not interrupted. otherwise, you should stop. */
- const char *checkForInterruptNoAssert();
+ const char* checkForInterruptNoAssert();
/** Reset the object to its initial state. Only for testing. */
void reset();
private:
void interruptJs( AtomicUInt *op );
+
volatile bool _globalKill;
/**
@@ -80,4 +79,5 @@ namespace mongo {
};
extern KillCurrentOp killCurrentOp;
-}
+
+} // namespace mongo
diff --git a/src/mongo/db/range_deleter.cpp b/src/mongo/db/range_deleter.cpp
index 90cce2fcb4c..465b8f7a2c5 100644
--- a/src/mongo/db/range_deleter.cpp
+++ b/src/mongo/db/range_deleter.cpp
@@ -31,8 +31,9 @@
#include <boost/date_time/posix_time/posix_time_duration.hpp>
#include <memory>
-#include "mongo/s/range_arithmetic.h"
+#include "mongo/db/global_environment_experiment.h"
#include "mongo/db/range_deleter_stats.h"
+#include "mongo/s/range_arithmetic.h"
#include "mongo/util/concurrency/synchronization.h"
#include "mongo/util/mongoutils/str.h"
#include "mongo/util/time_support.h"
@@ -73,9 +74,7 @@ namespace mongo {
struct RangeDeleter::RangeDeleteEntry {
RangeDeleteEntry():
secondaryThrottle(true),
- notifyDone(NULL),
- transactionFactory(OperationContext::factoryNULL) { // XXX SERVER-13931
- }
+ notifyDone(NULL) { }
std::string ns;
@@ -100,8 +99,6 @@ namespace mongo {
// Important invariant: Can only be set and used by one thread.
Notification* notifyDone;
- OperationContext::Factory transactionFactory;
-
// For debugging only
BSONObj toBSON() const {
return BSON("ns" << ns
@@ -196,8 +193,7 @@ namespace mongo {
}
}
- bool RangeDeleter::queueDelete(OperationContext::Factory transactionFactory,
- const std::string& ns,
+ bool RangeDeleter::queueDelete(const std::string& ns,
const BSONObj& min,
const BSONObj& max,
const BSONObj& shardKeyPattern,
@@ -208,7 +204,6 @@ namespace mongo {
if (errMsg == NULL) errMsg = &dummy;
auto_ptr<RangeDeleteEntry> toDelete(new RangeDeleteEntry);
- toDelete->transactionFactory = transactionFactory;
toDelete->ns = ns;
toDelete->min = min.getOwned();
toDelete->max = max.getOwned();
@@ -233,7 +228,7 @@ namespace mongo {
}
{
- boost::scoped_ptr<OperationContext> txn(transactionFactory());
+ boost::scoped_ptr<OperationContext> txn(getGlobalEnvironment()->newOpCtx());
_env->getCursorIds(txn.get(), ns, &toDelete->cursorsToWait);
}
@@ -442,8 +437,7 @@ namespace mongo {
set<CursorId> cursorsNow;
{
- boost::scoped_ptr<OperationContext> txn(
- entry->transactionFactory()); // XXX?
+ boost::scoped_ptr<OperationContext> txn(getGlobalEnvironment()->newOpCtx());
_env->getCursorIds(txn.get(), entry->ns, &cursorsNow);
}
@@ -482,7 +476,7 @@ namespace mongo {
}
{
- boost::scoped_ptr<OperationContext> txn(nextTask->transactionFactory()); // XXX SERVER-13931
+ boost::scoped_ptr<OperationContext> txn(getGlobalEnvironment()->newOpCtx());
if (!_env->deleteRange(txn.get(),
nextTask->ns,
nextTask->min,
diff --git a/src/mongo/db/range_deleter.h b/src/mongo/db/range_deleter.h
index 15da3560513..c735079b19c 100644
--- a/src/mongo/db/range_deleter.h
+++ b/src/mongo/db/range_deleter.h
@@ -131,8 +131,7 @@ namespace mongo {
* Returns true if the task is queued and false If the given range is blacklisted,
* is already queued, or stopWorkers() was called.
*/
- bool queueDelete(OperationContext::Factory transactionFactory,
- const std::string& ns,
+ bool queueDelete(const std::string& ns,
const BSONObj& min,
const BSONObj& max,
const BSONObj& shardKeyPattern,
diff --git a/src/mongo/db/range_deleter_mock_env.cpp b/src/mongo/db/range_deleter_mock_env.cpp
index 29877a1a252..a01117e4a2c 100644
--- a/src/mongo/db/range_deleter_mock_env.cpp
+++ b/src/mongo/db/range_deleter_mock_env.cpp
@@ -28,6 +28,9 @@
#include "mongo/db/range_deleter_mock_env.h"
+#include "mongo/db/global_environment_experiment.h"
+#include "mongo/db/global_environment_noop.h"
+
namespace mongo {
bool DeletedRangeCmp::operator()(const DeletedRange& lhs,
@@ -53,6 +56,8 @@ namespace mongo {
_pausedCount(0),
_envStatMutex("envStat"),
_getCursorsCallCount(0) {
+
+ setGlobalEnvironment(new GlobalEnvironmentNoop());
}
void RangeDeleterMockEnv::addCursorId(const StringData& ns, CursorId id) {
diff --git a/src/mongo/db/range_deleter_stat_test.cpp b/src/mongo/db/range_deleter_stat_test.cpp
index 125bce8f139..a77a4509bde 100644
--- a/src/mongo/db/range_deleter_stat_test.cpp
+++ b/src/mongo/db/range_deleter_stat_test.cpp
@@ -98,8 +98,7 @@ namespace {
string errMsg;
Notification notifyDone;
- ASSERT_TRUE(deleter.queueDelete(OperationContext::factoryNULL,
- ns,
+ ASSERT_TRUE(deleter.queueDelete(ns,
BSON("x" << 0),
BSON("x" << 10),
BSON("x" << 1),
@@ -141,8 +140,7 @@ namespace {
Notification deleteDone;
string errMsg;
- ASSERT_TRUE(deleter.queueDelete(OperationContext::factoryNULL, // XXX SERVER-13931
- ns,
+ ASSERT_TRUE(deleter.queueDelete(ns,
BSON("x" << 0),
BSON("x" << 10),
BSON("x" << 1),
@@ -185,8 +183,7 @@ namespace {
string errMsg;
Notification notifyDone;
- ASSERT_TRUE(deleter.queueDelete(OperationContext::factoryNULL, // XXX SERVER-13931
- ns,
+ ASSERT_TRUE(deleter.queueDelete(ns,
BSON("x" << 0),
BSON("x" << 10),
BSON("x" << 1),
diff --git a/src/mongo/db/range_deleter_test.cpp b/src/mongo/db/range_deleter_test.cpp
index 10c0b16acec..534ef9839f9 100644
--- a/src/mongo/db/range_deleter_test.cpp
+++ b/src/mongo/db/range_deleter_test.cpp
@@ -64,8 +64,7 @@ namespace {
deleter.stopWorkers();
string errMsg;
- ASSERT_FALSE(deleter.queueDelete(OperationContext::factoryNULL, // XXX SERVER-13931
- "test.user",
+ ASSERT_FALSE(deleter.queueDelete("test.user",
BSON("x" << 120),
BSON("x" << 200),
BSON("x" << 1),
@@ -87,8 +86,7 @@ namespace {
env->addCursorId(ns, 345);
Notification notifyDone;
- ASSERT_TRUE(deleter.queueDelete(OperationContext::factoryNULL, // XXX SERVER-13931
- ns, BSON("x" << 0), BSON("x" << 10), BSON("x" << 1),
+ ASSERT_TRUE(deleter.queueDelete(ns, BSON("x" << 0), BSON("x" << 10), BSON("x" << 1),
true, &notifyDone, NULL /* errMsg not needed */));
env->waitForNthGetCursor(1u);
@@ -126,8 +124,7 @@ namespace {
env->addCursorId(ns, 345);
Notification notifyDone;
- ASSERT_TRUE(deleter.queueDelete(OperationContext::factoryNULL, // XXX SERVER-13931
- ns, BSON("x" << 0), BSON("x" << 10), BSON("x" << 1),
+ ASSERT_TRUE(deleter.queueDelete(ns, BSON("x" << 0), BSON("x" << 10), BSON("x" << 1),
true, &notifyDone, NULL /* errMsg not needed */));
@@ -258,8 +255,7 @@ namespace {
env->pauseDeletes();
Notification notifyDone1;
- ASSERT_TRUE(deleter.queueDelete(OperationContext::factoryNULL, // XXX SERVER-13931
- ns,
+ ASSERT_TRUE(deleter.queueDelete(ns,
BSON("x" << 10),
BSON("x" << 20),
BSON("x" << 1),
@@ -277,8 +273,7 @@ namespace {
ASSERT_EQUALS(1, inProgressCount);
Notification notifyDone2;
- ASSERT_TRUE(deleter.queueDelete(OperationContext::factoryNULL, // XXX SERVER-13931
- blockedNS,
+ ASSERT_TRUE(deleter.queueDelete(blockedNS,
BSON("x" << 20),
BSON("x" << 30),
BSON("x" << 1),
@@ -287,8 +282,7 @@ namespace {
NULL /* don't care errMsg */));
Notification notifyDone3;
- ASSERT_TRUE(deleter.queueDelete(OperationContext::factoryNULL, // XXX SERVER-13931
- ns,
+ ASSERT_TRUE(deleter.queueDelete(ns,
BSON("x" << 30),
BSON("x" << 40),
BSON("x" << 1),
@@ -375,8 +369,7 @@ namespace {
ASSERT_TRUE(errMsg.empty());
errMsg.clear();
- ASSERT_FALSE(deleter.queueDelete(OperationContext::factoryNULL, // XXX SERVER-13931
- ns, BSON("x" << 120), BSON("x" << 140), BSON("x" << 1),
+ ASSERT_FALSE(deleter.queueDelete(ns, BSON("x" << 120), BSON("x" << 140), BSON("x" << 1),
false, NULL /* notifier not needed */, &errMsg));
ASSERT_FALSE(errMsg.empty());
@@ -424,8 +417,7 @@ namespace {
env->addCursorId(ns, 58);
Notification notifyDone;
- deleter.queueDelete(OperationContext::factoryNULL, // XXX SERVER-13931
- ns, BSON("x" << 0), BSON("x" << 10), BSON("x" << 1),
+ deleter.queueDelete(ns, BSON("x" << 0), BSON("x" << 10), BSON("x" << 1),
false, &notifyDone, NULL /* errMsg not needed */);
string errMsg;