ctdb-takeover: Send tcp tickles immediately on STARTUP control
authorAmitay Isaacs <amitay@gmail.com>
Mon, 20 Nov 2017 04:37:39 +0000 (15:37 +1100)
committerMartin Schwenke <martins@samba.org>
Thu, 30 Nov 2017 10:34:20 +0000 (11:34 +0100)
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13154

Signed-off-by: Amitay Isaacs <amitay@gmail.com>
Reviewed-by: Martin Schwenke <martin@meltin.net>
ctdb/server/ctdb_takeover.c

index 22dd878818dc7b901520aa5392c15e51213fe5e7..cd240875ba2e4cc48424de59b2fe5e93f9855bb6 100644 (file)
@@ -1483,24 +1483,23 @@ int32_t ctdb_control_tcp_remove(struct ctdb_context *ctdb, TDB_DATA indata)
 }
 
 
+static void ctdb_send_set_tcp_tickles_for_all(struct ctdb_context *ctdb,
+                                             bool force);
+
 /*
   Called when another daemon starts - causes all tickles for all
   public addresses we are serving to be sent to the new node on the
-  next check.  This actually causes the next scheduled call to
-  tdb_update_tcp_tickles() to update all nodes.  This is simple and
+  next check.  This actually causes the tickles to be sent to the
+  other node immediately.  In case there is an error, the periodic
+  timer will send the updates on timer event.  This is simple and
   doesn't require careful error handling.
  */
 int32_t ctdb_control_startup(struct ctdb_context *ctdb, uint32_t pnn)
 {
-       struct ctdb_vnn *vnn;
-
        DEBUG(DEBUG_INFO, ("Received startup control from node %lu\n",
                           (unsigned long) pnn));
 
-       for (vnn = ctdb->vnn; vnn != NULL; vnn = vnn->next) {
-               vnn->tcp_update_needed = true;
-       }
-
+       ctdb_send_set_tcp_tickles_for_all(ctdb, true);
        return 0;
 }