ctdbd: Log a message when recovery master changes
authorMartin Schwenke <martin@meltin.net>
Tue, 14 May 2013 06:20:32 +0000 (16:20 +1000)
committerAmitay Isaacs <amitay@gmail.com>
Thu, 23 May 2013 06:17:18 +0000 (16:17 +1000)
Signed-off-by: Martin Schwenke <martin@meltin.net>
Pair-Programmed-With: Amitay Isaacs <amitay@gmail.com>

server/ctdb_recover.c

index 2e9408fc9e722a0f5600175706eadc7fab893494..7fd0ac36ea110e1bf1ee5e86c4ac5c040f4cf7f0 100644 (file)
@@ -1350,9 +1350,22 @@ int32_t ctdb_control_recd_ping(struct ctdb_context *ctdb)
 
 int32_t ctdb_control_set_recmaster(struct ctdb_context *ctdb, uint32_t opcode, TDB_DATA indata)
 {
+       uint32_t new_recmaster;
+
        CHECK_CONTROL_DATA_SIZE(sizeof(uint32_t));
+       new_recmaster = ((uint32_t *)(&indata.dptr[0]))[0];
+
+       if (ctdb->pnn != new_recmaster && ctdb->recovery_master == ctdb->pnn) {
+               DEBUG(DEBUG_NOTICE,
+                     ("This node (%u) is no longer the recovery master\n", ctdb->pnn));
+       }
+
+       if (ctdb->pnn == new_recmaster && ctdb->recovery_master != new_recmaster) {
+               DEBUG(DEBUG_NOTICE,
+                     ("This node (%u) is now the recovery master\n", ctdb->pnn));
+       }
 
-       ctdb->recovery_master = ((uint32_t *)(&indata.dptr[0]))[0];
+       ctdb->recovery_master = new_recmaster;
        return 0;
 }