summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRalph Boehme <slow@samba.org>2020-02-29 12:26:19 +0100
committerKarolin Seeger <kseeger@samba.org>2020-03-24 07:26:17 +0000
commit8a3a942b5204dbd1f740d7c29e911be796d07f80 (patch)
treed6a6018782e1b9573fb95e2cf10dc12433b44e9b
parent6528833ee7e994b9cac651a19b2dbddc90557f4a (diff)
downloadsamba-8a3a942b5204dbd1f740d7c29e911be796d07f80.tar.gz
ctdb-daemon: ensure restart() callback is called in half-connected state
If NODE_FLAGS_DISCONNECTED is set the node can be in half-connected state. With this change we ensure to restart the transport for this case. BUG: https://bugzilla.samba.org/show_bug.cgi?id=14295 Signed-off-by: Ralph Boehme <slow@samba.org> Reviewed-by: Martin Schwenke <martin@meltin.net> (cherry picked from commit 6a4fa0785fc83561939fa41617d526eb96c1af89)
-rw-r--r--ctdb/server/ctdb_server.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/ctdb/server/ctdb_server.c b/ctdb/server/ctdb_server.c
index ddff85b81c5..02a5883cdbd 100644
--- a/ctdb/server/ctdb_server.c
+++ b/ctdb/server/ctdb_server.c
@@ -301,6 +301,12 @@ done:
*/
void ctdb_node_dead(struct ctdb_node *node)
{
+ if (node->ctdb->methods == NULL) {
+ DEBUG(DEBUG_ERR,(__location__ " Can not restart transport while shutting down daemon.\n"));
+ return;
+ }
+
+ node->ctdb->methods->restart(node);
if (node->flags & NODE_FLAGS_DISCONNECTED) {
DEBUG(DEBUG_INFO,("%s: node %s is already marked disconnected: %u connected\n",
node->ctdb->name, node->name,
@@ -315,13 +321,6 @@ void ctdb_node_dead(struct ctdb_node *node)
DEBUG(DEBUG_ERR,("%s: node %s is dead: %u connected\n",
node->ctdb->name, node->name, node->ctdb->num_connected));
ctdb_daemon_cancel_controls(node->ctdb, node);
-
- if (node->ctdb->methods == NULL) {
- DEBUG(DEBUG_ERR,(__location__ " Can not restart transport while shutting down daemon.\n"));
- return;
- }
-
- node->ctdb->methods->restart(node);
}
/*