<div dir="ltr"><div>Here is my proposed fix. Can you test it on your end?<br></div><div><br></div><div><a href="https://github.com/jgalar/lttng-tools/commits/sessiond-agent-crash">https://github.com/jgalar/lttng-tools/commits/sessiond-agent-crash</a><br></div><div><br></div><div><div>commit 5e249e09a2bd68f96e546bf83b4710596518f675</div><div>Author: Jérémie Galarneau <<a href="mailto:jeremie.galarneau@efficios.com">jeremie.galarneau@efficios.com</a>></div><div>Date:   Thu Jul 30 12:48:52 2015 -0400</div><div><br></div><div>    Clean-up: Move agent_apps_ht_by_sock definition to main.c</div><div>    </div><div>    Signed-off-by: Jérémie Galarneau <<a href="mailto:jeremie.galarneau@efficios.com">jeremie.galarneau@efficios.com</a>></div><div><br></div><div>commit 1af8b99faa625033f9e0c2a6eaa9b3006cfadadd</div><div>Author: Jérémie Galarneau <<a href="mailto:jeremie.galarneau@efficios.com">jeremie.galarneau@efficios.com</a>></div><div>Date:   Thu Jul 30 12:46:56 2015 -0400</div><div><br></div><div>    Fix: Initialize global agent_apps_ht_by_sock on session daemon launch</div><div>    </div><div>    Signed-off-by: Jérémie Galarneau <<a href="mailto:jeremie.galarneau@efficios.com">jeremie.galarneau@efficios.com</a>></div></div><div><br></div><div><br></div><div>Jérémie</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 30, 2015 at 12:02 PM, Jérémie Galarneau <span dir="ltr"><<a href="mailto:jeremie.galarneau@efficios.com" target="_blank">jeremie.galarneau@efficios.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><span class="">On Thu, Jul 30, 2015 at 11:12 AM, Julien Desfossez <span dir="ltr"><<a href="mailto:jdesfossez@efficios.com" target="_blank">jdesfossez@efficios.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Commit 6a4e403927ffef4cae8726064dcf53c463eb128c introduced a bug where<br>
we could end up iterating over the agent_apps_ht_by_sock regardless if<br>
it was allocated or not (only when the sessiond is launched as root).<br>
<br>
Steps to reproduce:<br>
$ sudo lttng-sessiond -d<br>
$ lttng-sessiond<br>
Error: Already running daemon.<br>
Segmentation fault (core dumped)<br>
<br>
Signed-off-by: Julien Desfossez <<a href="mailto:jdesfossez@efficios.com" target="_blank">jdesfossez@efficios.com</a>><br>
---<br>
 src/bin/lttng-sessiond/main.c | 4 +++-<br>
 1 file changed, 3 insertions(+), 1 deletion(-)<br>
<br>
diff --git a/src/bin/lttng-sessiond/main.c b/src/bin/lttng-sessiond/main.c<br>
index 91dd047..5840165 100644<br>
--- a/src/bin/lttng-sessiond/main.c<br>
+++ b/src/bin/lttng-sessiond/main.c<br>
@@ -677,7 +677,9 @@ static void sessiond_cleanup(void)<br>
        }<br>
<br>
        DBG("Cleaning up all agent apps");<br>
-       agent_app_ht_clean();<br>
+       if (is_root) {<br>
+               agent_app_ht_clean();<br>
+       }<br>
<br></blockquote><div><br></div></span><div>This will leak the hash table if the session daemon was launched as an unprivileged user. However, the problem can also be reproduced by launching two session daemons under the same unprivileged user.</div><div><br></div><div>The real issue here seems to be that the session daemon will enter the "exit_init_data" code path before creating the hash table if it can't acquire the lock file and that there are no NULL checks performed during the sessiond_cleanup().</div><div><br></div><div>Thanks,</div><div>Jérémie</div><span class=""><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
        DBG("Closing all UST sockets");<br>
        ust_app_clean_list();<br>
<span><font color="#888888">--<br>
1.9.1<br>
<br>
</font></span></blockquote></span></div><span class="HOEnZb"><font color="#888888"><br><br clear="all"><div><br></div>-- <br><div>Jérémie Galarneau<br>EfficiOS Inc.<br><a href="http://www.efficios.com" target="_blank">http://www.efficios.com</a></div>
</font></span></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Jérémie Galarneau<br>EfficiOS Inc.<br><a href="http://www.efficios.com" target="_blank">http://www.efficios.com</a></div>
</div>