summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMathias Stearn <mathias@10gen.com>2011-08-08 11:09:54 -0400
committerMathias Stearn <mathias@10gen.com>2011-08-08 12:44:52 -0400
commit60b85175fef9522452fd86862789a2c745b35a75 (patch)
tree7d60e810a39bfacb4f1457eaf32791e034368888
parentdd520e59a580764cf73eef813f37a45dfeab016f (diff)
downloadmongo-60b85175fef9522452fd86862789a2c745b35a75.tar.gz
Check dbhash on config servers once a minute and report failures SERVER-3323
-rw-r--r--s/config.cpp2
-rw-r--r--s/server.cpp11
2 files changed, 12 insertions, 1 deletions
diff --git a/s/config.cpp b/s/config.cpp
index 00800649645..07da064fa6f 100644
--- a/s/config.cpp
+++ b/s/config.cpp
@@ -609,7 +609,7 @@ namespace mongo {
if ( checkConsistency ) {
string errmsg;
if ( ! checkConfigServersConsistent( errmsg ) ) {
- log( LL_ERROR ) << "config servers not in sync! " << errmsg << endl;
+ log( LL_ERROR ) << "config servers not in sync! " << errmsg << warnings;
return false;
}
}
diff --git a/s/server.cpp b/s/server.cpp
index d8502ec0583..1ee30f126e5 100644
--- a/s/server.cpp
+++ b/s/server.cpp
@@ -26,6 +26,7 @@
#include "../util/ramlog.h"
#include "../util/signal_handlers.h"
#include "../util/admin_access.h"
+#include "../util/concurrency/task.h"
#include "../db/dbwebserver.h"
#include "../scripting/engine.h"
@@ -318,6 +319,16 @@ int _main(int argc, char* argv[]) {
return 8;
}
+ {
+ class CheckConfigServers : public task::Task {
+ virtual string name() const { return "CheckConfigServers"; }
+ virtual void doWork() { configServer.ok(true); }
+ };
+ static CheckConfigServers checkConfigServers;
+
+ task::repeat(&checkConfigServers, 60*1000);
+ }
+
int configError = configServer.checkConfigVersion( params.count( "upgrade" ) );
if ( configError ) {
if ( configError > 0 ) {