]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
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)
committerKarolin Seeger <kseeger@samba.org>
Wed, 13 Dec 2017 09:45:12 +0000 (10:45 +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>
(cherry picked from commit 73e261b48c4abc91e00775ac7437752c9640e5bd)

ctdb/server/ctdb_takeover.c

index b75dfb07e90853ce3fb422efd0a56f0ec780d538..b7fab0996d10875af4a865dbc5f582bf53009bb7 100644 (file)
@@ -1495,24 +1495,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;
 }