------------------------------------------------------------
revno: 733
revision-id:[EMAIL PROTECTED]
parent: [EMAIL PROTECTED]
committer: Andrew Tridgell <[EMAIL PROTECTED]>
branch nick: tridge.stable
timestamp: Mon 2008-01-07 16:17:22 +1100
message:
  merge from ronnie
modified:
  include/ctdb_private.h         
ctdb_private.h-20061117234101-o3qt14umlg9en8z0-13
  server/ctdb_recoverd.c         recoverd.c-20070503213540-bvxuyd9jm1f7ig90-1
=== modified file 'include/ctdb_private.h'
--- a/include/ctdb_private.h    2008-01-06 02:24:55 +0000
+++ b/include/ctdb_private.h    2008-01-07 05:17:22 +0000
@@ -366,6 +366,7 @@
        struct _trbt_tree_t *server_ids;        
        const char *event_script_dir;
        const char *default_public_interface;
+       pid_t ctdbd_pid;
        pid_t recoverd_pid;
        bool done_startup;
        const char *node_ip;

=== modified file 'server/ctdb_recoverd.c'
--- a/server/ctdb_recoverd.c    2008-01-07 03:08:25 +0000
+++ b/server/ctdb_recoverd.c    2008-01-07 05:17:22 +0000
@@ -1821,6 +1821,12 @@
        /* we only check for recovery once every second */
        ctdb_wait_timeout(ctdb, ctdb->tunable.recover_interval);
 
+       /* verify that the main daemon is still running */
+       if (kill(ctdb->ctdbd_pid, 0) != 0) {
+               DEBUG(0,("CTDB daemon is no longer available. Shutting down 
recovery daemon\n"));
+               exit(-1);
+       }
+
        if (rec->election_timeout) {
                /* an election is in progress */
                goto again;
@@ -2275,6 +2281,8 @@
                return -1;
        }
 
+       ctdb->ctdbd_pid = getpid();
+
        ctdb->recoverd_pid = fork();
        if (ctdb->recoverd_pid == -1) {
                return -1;

Reply via email to