diff options
author | Eliot Horowitz <eliot@10gen.com> | 2013-02-08 12:37:06 -0500 |
---|---|---|
committer | Dan Pasette <dan@10gen.com> | 2013-03-07 11:45:15 -0500 |
commit | 39d12aabde1cf72d388de0a2842210018e84c5ae (patch) | |
tree | 303536e506e172830380b299d4200b16342bd05e /src | |
parent | 379bee085f2d8bd71c136a5aa136aef2b3da80ed (diff) | |
download | mongo-39d12aabde1cf72d388de0a2842210018e84c5ae.tar.gz |
SERVER-8455 explicitly kill connection on config error
Diffstat (limited to 'src')
-rw-r--r-- | src/mongo/s/config.cpp | 7 |
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 |