From 0d42cfcd51c8c82f433255963d4ec5eb594d710e Mon Sep 17 00:00:00 2001 From: Amitay Isaacs Date: Mon, 20 Nov 2017 15:37:39 +1100 Subject: [PATCH] ctdb-takeover: Send tcp tickles immediately on STARTUP control BUG: https://bugzilla.samba.org/show_bug.cgi?id=13154 Signed-off-by: Amitay Isaacs Reviewed-by: Martin Schwenke (cherry picked from commit 73e261b48c4abc91e00775ac7437752c9640e5bd) --- ctdb/server/ctdb_takeover.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/ctdb/server/ctdb_takeover.c b/ctdb/server/ctdb_takeover.c index b75dfb07e90..b7fab0996d1 100644 --- a/ctdb/server/ctdb_takeover.c +++ b/ctdb/server/ctdb_takeover.c @@ -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; } -- 2.11.4.GIT