ctdb-recoverd: Explicitly set initial recovery master to unknown
authorMartin Schwenke <martin@meltin.net>
Tue, 10 Nov 2015 02:54:47 +0000 (13:54 +1100)
committerAmitay Isaacs <amitay@samba.org>
Mon, 16 Nov 2015 07:42:11 +0000 (08:42 +0100)
Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
ctdb/server/ctdb_recoverd.c

index 25180be092eeb7f8c0f2d7bb394184c1335abf6c..b01df0aa7a19b1a4d4b11d469599d5115c6aab02 100644 (file)
@@ -3503,11 +3503,10 @@ static void main_loop(struct ctdb_context *ctdb, struct ctdb_recoverd *rec,
                TALLOC_FREE(rec->force_rebalance_nodes);
        }
 
-       /* This is a special case.  When recovery daemon is started, recmaster
-        * is set to -1.  If a node is not started in stopped state, then
-        * start election to decide recovery master
+       /* When recovery daemon is started, recmaster is set to
+        * "unknown" so it knows to start an election.
         */
-       if (rec->recmaster == (uint32_t)-1) {
+       if (rec->recmaster == CTDB_UNKNOWN_PNN) {
                DEBUG(DEBUG_NOTICE,(__location__ " Initial recovery master set - forcing election\n"));
                force_election(rec, pnn, nodemap);
                return;
@@ -3918,6 +3917,7 @@ static void monitor_cluster(struct ctdb_context *ctdb)
        CTDB_NO_MEMORY_FATAL(ctdb, rec);
 
        rec->ctdb = ctdb;
+       rec->recmaster = CTDB_UNKNOWN_PNN;
 
        rec->takeover_run = ctdb_op_init(rec, "takeover runs");
        CTDB_NO_MEMORY_FATAL(ctdb, rec->takeover_run);