Fix: agent thread poll set creation failure results in deadlock
authorJérémie Galarneau <jeremie.galarneau@efficios.com>
Wed, 9 May 2018 01:23:14 +0000 (21:23 -0400)
committerJérémie Galarneau <jeremie.galarneau@efficios.com>
Wed, 9 May 2018 01:24:12 +0000 (21:24 -0400)
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 <jeremie.galarneau@efficios.com>
src/bin/lttng-sessiond/agent-thread.c

index f8456b428d49882945c2089bf12e3c4121c7420b..b238656812c69390b2d7e16ee841d7830cd3ba03 100644 (file)
@@ -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;
        }
 
This page took 0.026112 seconds and 4 git commands to generate.