summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEliot Horowitz <eliot@10gen.com>2013-02-08 12:37:06 -0500
committerDan Pasette <dan@10gen.com>2013-03-07 11:45:15 -0500
commit39d12aabde1cf72d388de0a2842210018e84c5ae (patch)
tree303536e506e172830380b299d4200b16342bd05e /src
parent379bee085f2d8bd71c136a5aa136aef2b3da80ed (diff)
downloadmongo-39d12aabde1cf72d388de0a2842210018e84c5ae.tar.gz
SERVER-8455 explicitly kill connection on config error
Diffstat (limited to 'src')
-rw-r--r--src/mongo/s/config.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/mongo/s/config.cpp b/src/mongo/s/config.cpp
index ca28ca0c004..42ee8f39a41 100644
--- a/src/mongo/s/config.cpp
+++ b/src/mongo/s/config.cpp
@@ -768,9 +768,11 @@ namespace mongo {
vector<BSONObj> res;
for ( unsigned i=0; i<_config.size(); i++ ) {
BSONObj x;
+
+ scoped_ptr<ScopedDbConnection> conn;
+
try {
- scoped_ptr<ScopedDbConnection> conn(
- ScopedDbConnection::getInternalScopedDbConnection( _config[i], 30.0 ) );
+ conn.reset( ScopedDbConnection::getInternalScopedDbConnection( _config[i], 30.0 ) );
// check auth
conn->get()->update("config.foo.bar", BSONObj(), BSON("x" << 1));
@@ -791,6 +793,7 @@ namespace mongo {
conn->done();
}
catch ( const DBException& e ) {
+ conn->kill();
// We need to catch DBExceptions b/c sometimes we throw them
// instead of socket exceptions when findN fails