diff options
-rw-r--r-- | src/mongo/s/d_state.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mongo/s/d_state.cpp b/src/mongo/s/d_state.cpp index 6ea6ef58b7b..95ba21ab8f9 100644 --- a/src/mongo/s/d_state.cpp +++ b/src/mongo/s/d_state.cpp @@ -40,6 +40,7 @@ #include "mongo/s/d_logic.h" #include "mongo/s/shard.h" #include "mongo/util/queue.h" +#include "mongo/util/concurrency/mutex.h" #include "mongo/util/concurrency/ticketholder.h" using namespace std; @@ -376,9 +377,13 @@ namespace mongo { } void ShardedConnectionInfo::addHook() { + static mongo::mutex lock("ShardedConnectionInfo::addHook mutex"); static bool done = false; + + scoped_lock lk(lock); if (!done) { - LOG(1) << "adding sharding hook" << endl; + log() << "first cluster operation detected, adding sharding hook to enable versioning " + "and authentication to remote servers" << endl; pool.addHook(new ShardingConnectionHook(false)); shardConnectionPool.addHook(new ShardingConnectionHook(true)); done = true; |