]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
ctdb-daemon: Exit if eventd goes away
authorMartin Schwenke <martin@meltin.net>
Thu, 11 Oct 2018 00:26:06 +0000 (11:26 +1100)
committerKarolin Seeger <kseeger@samba.org>
Mon, 29 Oct 2018 08:26:13 +0000 (09:26 +0100)
ctdbd enters a broken state if eventd goes away.  A clean shutdown is
not possible because that involves running events.  Restarting eventd
is possible but this might mask a serious problem and it is possible
that eventd might keep on disappearing.  Just exit.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=13659

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
(cherry picked from commit c9e1603a5d0c1a216439d4a2b0e7cdc05181e898)

ctdb/server/eventscript.c

index 1f70ef5addf81a5c7f71b8f573356572925977a8..4a680044c2593571e5e5855b34bc046a51064508 100644 (file)
@@ -370,13 +370,8 @@ static void eventd_dead_handler(struct tevent_context *ev,
                                struct tevent_fd *fde, uint16_t flags,
                                void *private_data)
 {
-       struct eventd_context *ectx = talloc_get_type_abort(
-               private_data, struct eventd_context);
-
-       DEBUG(DEBUG_ERR, ("Eventd went away\n"));
-
-       TALLOC_FREE(ectx->eventd_fde);
-       ectx->eventd_pid = -1;
+       D_ERR("Eventd went away - exiting\n");
+       exit(1);
 }
 
 void ctdb_stop_eventd(struct ctdb_context *ctdb)