Since the unix socket is opened before syslogd process is forked, syslogd
process also keeps listening to it. If main ctdbd process dies and has any
child processes that are blocked waiting for locks, these child processes
keep connecting to unix socket and thus syslogd cannot exit.
Signed-off-by: Amitay Isaacs <amitay@gmail.com>
}
debug_extra = talloc_asprintf(NULL, "syslogd:");
+
+ /* Close unix socket since syslogd does not need it */
+ close(ctdb->daemon.sd);
+ ctdb->daemon.sd = -1;
+
talloc_free(ctdb->ev);
ctdb->ev = event_context_init(NULL);
tevent_loop_allow_nesting(ctdb->ev);