From: jeremie.galarneau@efficios.com (Jérémie Galarneau)
Subject: [lttng-dev] [LTTNG-TOOLS PATCH] Fix: only cleanup the agent_apps_ht_by_sock as root
Date: Thu, 30 Jul 2015 12:53:07 -0400 [thread overview]
Message-ID: <CA+jJMxtDov8wEtZp=T3+2LRieRjAcfMQ6WxESgzaw+Gj1KhfKw@mail.gmail.com> (raw)
In-Reply-To: <CA+jJMxtq7wLdQnf8QH97hY9=1f5jcs6O9dpKTkghxP5w=FktPQ@mail.gmail.com>
Here is my proposed fix. Can you test it on your end?
https://github.com/jgalar/lttng-tools/commits/sessiond-agent-crash
commit 5e249e09a2bd68f96e546bf83b4710596518f675
Author: J?r?mie Galarneau <jeremie.galarneau at efficios.com>
Date: Thu Jul 30 12:48:52 2015 -0400
Clean-up: Move agent_apps_ht_by_sock definition to main.c
Signed-off-by: J?r?mie Galarneau <jeremie.galarneau at efficios.com>
commit 1af8b99faa625033f9e0c2a6eaa9b3006cfadadd
Author: J?r?mie Galarneau <jeremie.galarneau at efficios.com>
Date: Thu Jul 30 12:46:56 2015 -0400
Fix: Initialize global agent_apps_ht_by_sock on session daemon launch
Signed-off-by: J?r?mie Galarneau <jeremie.galarneau at efficios.com>
J?r?mie
On Thu, Jul 30, 2015 at 12:02 PM, J?r?mie Galarneau <
jeremie.galarneau at efficios.com> wrote:
>
>
> On Thu, Jul 30, 2015 at 11:12 AM, Julien Desfossez <
> jdesfossez at efficios.com> wrote:
>
>> Commit 6a4e403927ffef4cae8726064dcf53c463eb128c introduced a bug where
>> we could end up iterating over the agent_apps_ht_by_sock regardless if
>> it was allocated or not (only when the sessiond is launched as root).
>>
>> Steps to reproduce:
>> $ sudo lttng-sessiond -d
>> $ lttng-sessiond
>> Error: Already running daemon.
>> Segmentation fault (core dumped)
>>
>> Signed-off-by: Julien Desfossez <jdesfossez at efficios.com>
>> ---
>> src/bin/lttng-sessiond/main.c | 4 +++-
>> 1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/src/bin/lttng-sessiond/main.c b/src/bin/lttng-sessiond/main.c
>> index 91dd047..5840165 100644
>> --- a/src/bin/lttng-sessiond/main.c
>> +++ b/src/bin/lttng-sessiond/main.c
>> @@ -677,7 +677,9 @@ static void sessiond_cleanup(void)
>> }
>>
>> DBG("Cleaning up all agent apps");
>> - agent_app_ht_clean();
>> + if (is_root) {
>> + agent_app_ht_clean();
>> + }
>>
>>
> 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.
>
> 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().
>
> Thanks,
> J?r?mie
>
>
>> DBG("Closing all UST sockets");
>> ust_app_clean_list();
>> --
>> 1.9.1
>>
>>
>
>
> --
> J?r?mie Galarneau
> EfficiOS Inc.
> http://www.efficios.com
>
--
J?r?mie Galarneau
EfficiOS Inc.
http://www.efficios.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lttng.org/pipermail/lttng-dev/attachments/20150730/ce861cf7/attachment.html>
next prev parent reply other threads:[~2015-07-30 16:53 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-30 15:12 Julien Desfossez
2015-07-30 16:02 ` Jérémie Galarneau
2015-07-30 16:53 ` Jérémie Galarneau [this message]
2015-07-30 17:40 ` Julien Desfossez
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CA+jJMxtDov8wEtZp=T3+2LRieRjAcfMQ6WxESgzaw+Gj1KhfKw@mail.gmail.com' \
--to=jeremie.galarneau@efficios.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox