From: Jérémie Galarneau Date: Wed, 9 May 2018 01:23:14 +0000 (-0400) Subject: Fix: agent thread poll set creation failure results in deadlock X-Git-Tag: v2.10.5~18 X-Git-Url: http://git.liburcu.org/?p=lttng-tools.git;a=commitdiff_plain;h=99a74705c016ef8f21cfa451ca3ffb95fa0f205e Fix: agent thread poll set creation failure results in deadlock Failing to initialize the agent thread's pollset will cause the thread to exit before calling sessiond_notify_ready(). This will cause the main thread to wait forever for all threads to be launched when such an error occurs. The agent thread is not needed for the sessiond to work (except to enable the tracing of Java and Python applications). Such a failure should leave the sessiond in a useable state. Signed-off-by: Jérémie Galarneau --- diff --git a/src/bin/lttng-sessiond/agent-thread.c b/src/bin/lttng-sessiond/agent-thread.c index f8456b428..b23865681 100644 --- a/src/bin/lttng-sessiond/agent-thread.c +++ b/src/bin/lttng-sessiond/agent-thread.c @@ -308,6 +308,7 @@ void *agent_thread_manage_registration(void *data) /* Create pollset with size 2, quit pipe and socket. */ ret = sessiond_set_thread_pollset(&events, 2); if (ret < 0) { + sessiond_notify_ready(); goto error_poll_create; }