diff options
author | Hari Khalsa <hkhalsa@10gen.com> | 2014-06-04 14:18:22 -0400 |
---|---|---|
committer | Hari Khalsa <hkhalsa@10gen.com> | 2014-06-05 13:48:45 -0400 |
commit | 52c525dfb3b222a36e99986575e16725245389c5 (patch) | |
tree | 15d258bd445271110718bfcd4c1b555e8651725e /src/mongo/db | |
parent | 580141520aab378006d3c8d36daad42813886b88 (diff) | |
download | mongo-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.cpp | 7 | ||||
-rw-r--r-- | src/mongo/db/global_environment_d.cpp | 48 | ||||
-rw-r--r-- | src/mongo/db/global_environment_d.h | 46 | ||||
-rw-r--r-- | src/mongo/db/global_environment_experiment.cpp | 56 | ||||
-rw-r--r-- | src/mongo/db/global_environment_experiment.h | 86 | ||||
-rw-r--r-- | src/mongo/db/global_environment_noop.cpp | 46 | ||||
-rw-r--r-- | src/mongo/db/global_environment_noop.h | 42 | ||||
-rw-r--r-- | src/mongo/db/kill_current_op.h | 14 | ||||
-rw-r--r-- | src/mongo/db/range_deleter.cpp | 20 | ||||
-rw-r--r-- | src/mongo/db/range_deleter.h | 3 | ||||
-rw-r--r-- | src/mongo/db/range_deleter_mock_env.cpp | 5 | ||||
-rw-r--r-- | src/mongo/db/range_deleter_stat_test.cpp | 9 | ||||
-rw-r--r-- | src/mongo/db/range_deleter_test.cpp | 24 |
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, ¬ifyDone, 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, ¬ifyDone, 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, ¬ifyDone, NULL /* errMsg not needed */); string errMsg; |