server: give an error if we're getting an takeover_ip event with a wrong pnn
authorStefan Metzmacher <metze@samba.org>
Mon, 18 Jan 2010 14:38:01 +0000 (15:38 +0100)
committerStefan Metzmacher <metze@samba.org>
Wed, 20 Jan 2010 10:11:04 +0000 (11:11 +0100)
metze

server/ctdb_takeover.c

index 94c4ad89bb7eacfb995212d2437fd7f51a63df22..b9ba445c9143b1b42a32deb4aae57f4783fb7d8b 100644 (file)
@@ -560,6 +560,14 @@ int32_t ctdb_control_takeover_ip(struct ctdb_context *ctdb,
        bool do_takeip = false;
        struct ctdb_iface *best_iface = NULL;
 
+       if (pip->pnn != ctdb->pnn) {
+               DEBUG(DEBUG_ERR,(__location__" takeoverip called for an ip '%s' "
+                                "with pnn %d, but we're node %d\n",
+                                ctdb_addr_to_str(&pip->addr),
+                                pip->pnn, ctdb->pnn));
+               return -1;
+       }
+
        /* update out vnn list */
        vnn = find_public_ip_vnn(ctdb, &pip->addr);
        if (vnn == NULL) {