summaryrefslogtreecommitdiff
path: root/ctdb
diff options
context:
space:
mode:
authorRalph Boehme <slow@samba.org>2020-02-29 12:26:19 +0100
committerKarolin Seeger <kseeger@samba.org>2020-03-19 09:37:11 +0000
commit503427f7d67b94841c117bb3bf9e77587589ac19 (patch)
tree09724132566116380a0527260de6f6729099a7ed /ctdb
parent586ac88bca4fcaef3532022e21177aed27350d9d (diff)
downloadsamba-503427f7d67b94841c117bb3bf9e77587589ac19.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)
Diffstat (limited to 'ctdb')
-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 9724d1fe0a8..c5d92af0cfb 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);
}
/*