* [lttng-dev] SIG33 message
[not found] <CAJyWpKFdOV6uiwWUicD5GNSSjWsD1TXjn=p45p_g6xu7F3HJbQ@mail.gmail.com>
@ 2019-04-16 17:40 ` Mathieu Desnoyers
2019-04-16 17:58 ` Sebastien Boisvert
1 sibling, 0 replies; 5+ messages in thread
From: Mathieu Desnoyers @ 2019-04-16 17:40 UTC (permalink / raw)
----- On Apr 4, 2019, at 3:26 PM, Mosleh Uddin <mosleh1235 at gmail.com> wrote:
> Hello,
> I am building an application which I am compiling with the 'lttng-ust' flag.
> When I try to debug the application using gdb, I get a 'Suspended: Signal:
> SIG33:Real-time event 33' message. This only happens when I compile with the
> 'lttng-ust' flag, if I remove it I no longer have this issue. Any insight?
Hi,
Based on the signal(7) man page, it appears that real-time signal 33 is used by the NPTL
threading library from glibc.
Indeed, lttng-ust creates 2 threads within the processes it's linked into, so
your application needs to appropriately interact with glibc NPTL in order to link
lttng-ust into it.
Can you provide more details on the nature of your application ? What version
of gdb do you use ? On which architecture ?
Thanks,
Mathieu
--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.lttng.org/pipermail/lttng-dev/attachments/20190416/54631360/attachment.html>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [lttng-dev] SIG33 message
[not found] <CAJyWpKFdOV6uiwWUicD5GNSSjWsD1TXjn=p45p_g6xu7F3HJbQ@mail.gmail.com>
2019-04-16 17:40 ` [lttng-dev] SIG33 message Mathieu Desnoyers
@ 2019-04-16 17:58 ` Sebastien Boisvert
2019-04-16 18:11 ` Mathieu Desnoyers
1 sibling, 1 reply; 5+ messages in thread
From: Sebastien Boisvert @ 2019-04-16 17:58 UTC (permalink / raw)
Hi Mosleh,
(I just saw Mathieu's answer arrive in my inbox while I was writing this.)
First, I don't know the exact solution.
In Linux, signals are sent with the kill() function.
In the LTTng-UST source code, there are 3 signals that relate to 'Suspended: Signal: SIG33:Real-time event 33' (RT):
libringbuffer/ring_buffer_frontend.c:82:#define LTTNG_UST_RB_SIG_FLUSH SIGRTMIN
libringbuffer/ring_buffer_frontend.c:83:#define LTTNG_UST_RB_SIG_READ SIGRTMIN + 1
libringbuffer/ring_buffer_frontend.c:84:#define LTTNG_UST_RB_SIG_TEARDOWN SIGRTMIN + 2
=> http://git.lttng.org/?p=lttng-ust.git;a=blob;f=libringbuffer/ring_buffer_frontend.c;h=9721df1634585f028316d13f96b184af7e99cc08;hb=HEAD#l82
On my system (Ubuntu 18.04.2 LTS with Linux 4.15.0-47-generic), SIGRTMIN = 34.
Check with 'kill -l SIGRTMIN' on your system to see if it it the same value.
In the LTTng-UST source code, there 1 this call to kill():
libringbuffer/ring_buffer_frontend.c:767: kill(getpid(), LTTNG_UST_RB_SIG_TEARDOWN);
=> http://git.lttng.org/?p=lttng-ust.git;a=blob;f=libringbuffer/ring_buffer_frontend.c;h=9721df1634585f028316d13f96b184af7e99cc08;hb=HEAD#l767
These custom signals seem to be handled here:
libringbuffer/ring_buffer_frontend.c:660
=> http://git.lttng.org/?p=lttng-ust.git;a=blob;f=libringbuffer/ring_buffer_frontend.c;h=9721df1634585f028316d13f96b184af7e99cc08;hb=HEAD#l660
On 2019-04-04 3:26 p.m., Mosleh Uddin wrote:
> Hello,
>
> I am building an application which I am compiling with the 'lttng-ust' flag. When I try to debug the application using gdb, I get a 'Suspended: Signal: SIG33:Real-time event 33' message. This only happens when I compile with the 'lttng-ust' flag, if I remove it I no longer have this issue. Any insight?
>
> Regards,
> Mosleh
>
> _______________________________________________
> lttng-dev mailing list
> lttng-dev at lists.lttng.org
> https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [lttng-dev] SIG33 message
2019-04-16 17:58 ` Sebastien Boisvert
@ 2019-04-16 18:11 ` Mathieu Desnoyers
2019-04-16 18:21 ` Sebastien Boisvert
0 siblings, 1 reply; 5+ messages in thread
From: Mathieu Desnoyers @ 2019-04-16 18:11 UTC (permalink / raw)
----- On Apr 16, 2019, at 1:58 PM, Sebastien Boisvert sboisvert at gydle.com wrote:
> Hi Mosleh,
>
> (I just saw Mathieu's answer arrive in my inbox while I was writing this.)
>
> First, I don't know the exact solution.
>
>
> In Linux, signals are sent with the kill() function.
>
> In the LTTng-UST source code, there are 3 signals that relate to 'Suspended:
> Signal: SIG33:Real-time event 33' (RT):
>
> libringbuffer/ring_buffer_frontend.c:82:#define LTTNG_UST_RB_SIG_FLUSH SIGRTMIN
> libringbuffer/ring_buffer_frontend.c:83:#define LTTNG_UST_RB_SIG_READ SIGRTMIN
> + 1
> libringbuffer/ring_buffer_frontend.c:84:#define LTTNG_UST_RB_SIG_TEARDOWN
> SIGRTMIN + 2
>
> =>
> http://git.lttng.org/?p=lttng-ust.git;a=blob;f=libringbuffer/ring_buffer_frontend.c;h=9721df1634585f028316d13f96b184af7e99cc08;hb=HEAD#l82
>
>
> On my system (Ubuntu 18.04.2 LTS with Linux 4.15.0-47-generic), SIGRTMIN = 34.
>
> Check with 'kill -l SIGRTMIN' on your system to see if it it the same value.
>
>
>
> In the LTTng-UST source code, there 1 this call to kill():
>
> libringbuffer/ring_buffer_frontend.c:767: kill(getpid(),
> LTTNG_UST_RB_SIG_TEARDOWN);
>
> =>
> http://git.lttng.org/?p=lttng-ust.git;a=blob;f=libringbuffer/ring_buffer_frontend.c;h=9721df1634585f028316d13f96b184af7e99cc08;hb=HEAD#l767
>
>
>
>
> These custom signals seem to be handled here:
>
> libringbuffer/ring_buffer_frontend.c:660
>
> =>
> http://git.lttng.org/?p=lttng-ust.git;a=blob;f=libringbuffer/ring_buffer_frontend.c;h=9721df1634585f028316d13f96b184af7e99cc08;hb=HEAD#l660
Hi Sebastien,
This part of the ring buffer should only be used by the consumer daemon through
liblttng-ust-ctl.so, never from the traced applications.
So I keep suspecting that it's NPTL's use of SIG33 which is causing an old
version of gdb to trap, ref: https://gdb.sourceware.narkive.com/SzqG56iA/program-received-signal-sig33-real-time-event-33
Thanks,
Mathieu
>
>
>
>
> On 2019-04-04 3:26 p.m., Mosleh Uddin wrote:
>> Hello,
>>
>> I am building an application which I am compiling with the 'lttng-ust' flag.
>> When I try to debug the application using gdb, I get a 'Suspended: Signal:
>> SIG33:Real-time event 33' message. This only happens when I compile with the
>> 'lttng-ust' flag, if I remove it I no longer have this issue. Any insight?
>>
>> Regards,
>> Mosleh
>>
>> _______________________________________________
>> lttng-dev mailing list
>> lttng-dev at lists.lttng.org
>> https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
>>
> _______________________________________________
> lttng-dev mailing list
> lttng-dev at lists.lttng.org
> https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
^ permalink raw reply [flat|nested] 5+ messages in thread
* [lttng-dev] SIG33 message
2019-04-16 18:11 ` Mathieu Desnoyers
@ 2019-04-16 18:21 ` Sebastien Boisvert
2019-04-16 18:41 ` Mathieu Desnoyers
0 siblings, 1 reply; 5+ messages in thread
From: Sebastien Boisvert @ 2019-04-16 18:21 UTC (permalink / raw)
On 2019-04-16 2:12 p.m., Mathieu Desnoyers wrote:
[snip]
>
> Hi Sebastien,
>
> This part of the ring buffer should only be used by the consumer daemon through
> liblttng-ust-ctl.so, never from the traced applications.
>
> So I keep suspecting that it's NPTL's use of SIG33 which is causing an old
> version of gdb to trap, ref: https://gdb.sourceware.narkive.com/SzqG56iA/program-received-signal-sig33-real-time-event-33
>
> Thanks,
>
> Mathieu
>
If it is the case that an old gdb is involved,
then it is unrelated to this kill() call site in the LTTng-UST source code:
libringbuffer/ring_buffer_frontend.c:767: kill(getpid(), LTTNG_UST_RB_SIG_TEARDOWN);
because LTTNG_UST_RB_SIG_TEARDOWN is SIGRTMIN + 2. According to the man page of signal(7) [1],
SIGRTMIN is 34 (Native Posix Thread Library) or 35 (LinuxThreads, whatever that is).
The equation
33 = SIGRTMIN + 2
is not satisfied with either 34 or 35.
So, is upgrading gdg the solution ?
[1] http://man7.org/linux/man-pages/man7/signal.7.html
[snip]
^ permalink raw reply [flat|nested] 5+ messages in thread
* [lttng-dev] SIG33 message
2019-04-16 18:21 ` Sebastien Boisvert
@ 2019-04-16 18:41 ` Mathieu Desnoyers
0 siblings, 0 replies; 5+ messages in thread
From: Mathieu Desnoyers @ 2019-04-16 18:41 UTC (permalink / raw)
----- On Apr 16, 2019, at 2:21 PM, Sebastien Boisvert sboisvert at gydle.com wrote:
> On 2019-04-16 2:12 p.m., Mathieu Desnoyers wrote:
> [snip]
>>
>> Hi Sebastien,
>>
>> This part of the ring buffer should only be used by the consumer daemon through
>> liblttng-ust-ctl.so, never from the traced applications.
>>
>> So I keep suspecting that it's NPTL's use of SIG33 which is causing an old
>> version of gdb to trap, ref:
>> https://gdb.sourceware.narkive.com/SzqG56iA/program-received-signal-sig33-real-time-event-33
>>
>> Thanks,
>>
>> Mathieu
>>
>
> If it is the case that an old gdb is involved,
> then it is unrelated to this kill() call site in the LTTng-UST source code:
>
> libringbuffer/ring_buffer_frontend.c:767: kill(getpid(),
> LTTNG_UST_RB_SIG_TEARDOWN);
>
> because LTTNG_UST_RB_SIG_TEARDOWN is SIGRTMIN + 2. According to the man page of
> signal(7) [1],
> SIGRTMIN is 34 (Native Posix Thread Library) or 35 (LinuxThreads, whatever that
> is).
>
>
> The equation
>
> 33 = SIGRTMIN + 2
>
> is not satisfied with either 34 or 35.
>
>
> So, is upgrading gdg the solution ?
Based on the gdb forum link I showed, either explicitly disable handling
SIG33 in older gdb:
handle SIG33 nostop noprint pass
or upgrade gdb.
Thanks,
Mathieu
>
>
> [1] http://man7.org/linux/man-pages/man7/signal.7.html
>
>
> [snip]
--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2019-04-16 18:41 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <CAJyWpKFdOV6uiwWUicD5GNSSjWsD1TXjn=p45p_g6xu7F3HJbQ@mail.gmail.com>
2019-04-16 17:40 ` [lttng-dev] SIG33 message Mathieu Desnoyers
2019-04-16 17:58 ` Sebastien Boisvert
2019-04-16 18:11 ` Mathieu Desnoyers
2019-04-16 18:21 ` Sebastien Boisvert
2019-04-16 18:41 ` Mathieu Desnoyers
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox