From: Amitay Isaacs Date: Thu, 21 Jun 2018 06:38:01 +0000 (+1000) Subject: ctdb-daemon: Switch to starting new event daemon X-Git-Tag: tevent-0.9.37~101 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=efc5d3caddc3952b30b709f4f24c51e42e8c9bdb;p=thirdparty%2Fsamba.git ctdb-daemon: Switch to starting new event daemon From this patch onwards, CTDB daemon is broken till the client code for new eventd is integrated. This requires getting rid of the old eventd protocol and client code and then switching to the new eventd protocol and client code. Signed-off-by: Amitay Isaacs Reviewed-by: Martin Schwenke --- diff --git a/ctdb/server/ctdbd.c b/ctdb/server/ctdbd.c index 49e5b304d92..bfdc5e032eb 100644 --- a/ctdb/server/ctdbd.c +++ b/ctdb/server/ctdbd.c @@ -313,20 +313,6 @@ int main(int argc, const char *argv[]) } } - /* - * Event setup/options - */ - if (ctdb_config.event_debug_script != NULL) { - ret = setenv("CTDB_DEBUG_HUNG_SCRIPT", - ctdb_config.event_debug_script, - 1); - if (ret != 0) { - D_ERR("Failed to set up event script debugging (%s)\n", - strerror(errno)); - goto fail; - } - } - /* * Legacy setup/options */ diff --git a/ctdb/server/eventscript.c b/ctdb/server/eventscript.c index 41807ffdcb0..c3624f26fa8 100644 --- a/ctdb/server/eventscript.c +++ b/ctdb/server/eventscript.c @@ -41,6 +41,7 @@ #include "common/logging.h" #include "common/reqid.h" #include "common/sock_io.h" +#include "common/path.h" #include "protocol/protocol_api.h" @@ -51,10 +52,7 @@ struct eventd_context { struct tevent_context *ev; const char *path; - const char *script_dir; - const char *pidfile; const char *socket; - const char *debug_hung_script; /* server state */ pid_t eventd_pid; @@ -71,10 +69,8 @@ static bool eventd_context_init(TALLOC_CTX *mem_ctx, struct eventd_context **out) { struct eventd_context *ectx; - const char *eventd = CTDB_HELPER_BINDIR "/ctdb_eventd"; - const char *debug_hung_script = CTDB_ETCDIR "/debug-hung-script.sh"; + const char *eventd = CTDB_HELPER_BINDIR "/ctdb-eventd"; const char *value; - char *socket; int ret; ectx = talloc_zero(mem_ctx, struct eventd_context); @@ -95,41 +91,12 @@ static bool eventd_context_init(TALLOC_CTX *mem_ctx, return false; } - ectx->script_dir = ctdb->event_script_dir; - - socket = talloc_strdup(ectx, ctdb_get_socketname(ctdb)); - if (socket == NULL) { - talloc_free(ectx); - return false; - } - - ectx->socket = talloc_asprintf(ectx, "%s/eventd.sock", - dirname(socket)); + ectx->socket = path_socket(ectx, "eventd"); if (ectx->socket == NULL) { talloc_free(ectx); return false; } - talloc_free(socket); - - value = getenv("CTDB_DEBUG_HUNG_SCRIPT"); - if (value != NULL) { - if (value[0] == '\0') { - debug_hung_script = NULL; - } else { - debug_hung_script = value; - } - } - - if (debug_hung_script != NULL) { - ectx->debug_hung_script = talloc_strdup(ectx, - debug_hung_script); - if (ectx->debug_hung_script == NULL) { - talloc_free(ectx); - return false; - } - } - ret = reqid_init(ectx, 1, &ectx->idr); if (ret != 0) { talloc_free(ectx); @@ -175,40 +142,23 @@ int ctdb_start_eventd(struct ctdb_context *ctdb) return -1; } - argv = talloc_array(ectx, const char *, 14); + argv = talloc_array(ectx, const char *, 4); if (argv == NULL) { return -1; } argv[0] = ectx->path; - argv[1] = "-e"; - argv[2] = ectx->script_dir; - argv[3] = "-s"; - argv[4] = ectx->socket; - argv[5] = "-P"; - argv[6] = talloc_asprintf(argv, "%d", ctdb->ctdbd_pid); - argv[7] = "-l"; - argv[8] = getenv("CTDB_LOGGING"); - argv[9] = "-d"; - argv[10] = debug_level_to_string(DEBUGLEVEL); - if (ectx->debug_hung_script == NULL) { - argv[11] = NULL; - argv[12] = NULL; - } else { - argv[11] = "-D"; - argv[12] = ectx->debug_hung_script; - } - argv[13] = NULL; + argv[1] = "-P"; + argv[2] = talloc_asprintf(argv, "%d", ctdb->ctdbd_pid); + argv[3] = NULL; - if (argv[6] == NULL) { + if (argv[2] == NULL) { talloc_free(argv); return -1; } DEBUG(DEBUG_NOTICE, - ("Starting event daemon %s %s %s %s %s %s %s %s %s %s %s\n", - argv[0], argv[1], argv[2], argv[3], argv[4], argv[5], - argv[6], argv[7], argv[8], argv[9], argv[10])); + ("Starting event daemon %s %s %s\n", argv[0], argv[1], argv[2])); ret = pipe(fd); if (ret != 0) {