[lttng-dev] Using lttng-ust 2.13.6 from Yocto Kirkstone and getting weird segfault saying strlen_asimd.S can't be found.

Kienan Stewart kstewart at efficios.com
Wed Jul 17 10:13:21 EDT 2024


Hi Brian,

thanks! I'll take a look at these and see if I can get any ideas from them.

To go back to your original e-mail, a detail that I hadn't noticed in 
your original backtrace was pointed out to me and I'd like to verify 
with you:

```
Core was generated by `./my_app'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  __strlen_asimd () at ../sysdeps/aarch64/multiarch/strlen_asimd.S:96
96      ../sysdeps/aarch64/multiarch/strlen_asimd.S: No such file or 
directory.
[Current thread is 1 (Thread 0xffffb8e2d040 (LWP 757))]
(gdb) bt
#0  __strlen_asimd () at ../sysdeps/aarch64/multiarch/strlen_asimd.S:96
#1  0x0000ffffb86c5330 in lttng_ust_tracepoint_module_register () from 
/usr/lib/liblttng-ust-tracepoint.so.1
#2  0x0000aaaab4c8da18 in lttng_ust__tracepoints__ptrs_init () at 
/opt/poky/4.0.18/sysroots/cortexa53-crypto-poky-linux/usr/include/lttng/tracepoint.h:629
#3  0x0000ffffb872b30c in call_init (env=<optimized out>, 
argv=0xffffe2d66098, argc=1) at ../csu/libc-start.c:145
#4  __libc_start_main_impl (main=0xaaaab4bd94e0 <main>, argc=1, 
argv=0xffffe2d66098, init=<optimized out>, fini=<optimized out>, 
rtld_fini=<optimized out>, stack_end=<optimized out>) at 
../csu/libc-start.c:376
#5  0x0000aaaab4bd9230 in _start () at ../sysdeps/aarch64/start.S:81
```

The library loaded at frame 1 is 
`/usr/lib/liblttng-ust-tracepoint.so.1`; however, in frame 2 the 
reference is from 
`/opt/poky/4.0.18/sysroots/cortexa53-crypto-poky-linux/usr/include/lttng/tracepoint.h`.

Are the LTTng libraries in `/usr/lib` the exact same version as the 
headers in 
`/opt/poky/4.0.18/sysroots/cortexa53-cryptop-poky-linux/usr/include/lttng`?

If some of your app is compiled using one version of headers and a 
different version of the library is loaded at runtime, there could be an 
ABI mismatch.

You could check what the include paths are during compilation and 
`LD_LIBRARY_PATH` at runtime. Running with the environment variable 
`LD_DEBUG=bindings,libs` (see `man ld.so` for more info).

In any case, I'll take a look over the most recent backtraces and see if 
anything else jumps out.

thanks,
kienan


On 7/16/24 9:27 PM, Brian Hutchinson wrote:
> Hi Kienan,
> 
> On Thu, Jul 11, 2024 at 8:38 AM Kienan Stewart <kstewart at efficios.com 
> <mailto:kstewart at efficios.com>> wrote:
> 
>     Hi Brian,
> 
>     On 7/11/24 8:33 AM, Brian Hutchinson via lttng-dev wrote:
>       > ...
>       >
>       > I'm not sure about this, still trying to comprehend everything,
>     but I
>       > think my issue could be related to all this gcc TLS, heap,
>     trampoline
>       > talk here:
>       >
>       >
>     https://www.mail-archive.com/lttng-dev@lists.lttng.org/msg13584.html
>     <https://www.mail-archive.com/lttng-dev@lists.lttng.org/msg13584.html>
>       >
>     <https://www.mail-archive.com/lttng-dev@lists.lttng.org/msg13584.html <https://www.mail-archive.com/lttng-dev@lists.lttng.org/msg13584.html>>
>       >
>       > Regards,
>       >
>       > Brian
>       >
> 
>     You could try using lttng-ust 2.13.8, which includes a fix for the
>     discussion you referenced.
> 
>     https://github.com/lttng/lttng-ust/commit/5db715e800d9b721f48495a987cd26c25965e836 <https://github.com/lttng/lttng-ust/commit/5db715e800d9b721f48495a987cd26c25965e836>
> 
>     Please let us know if it doesn't solve it.
> 
>     thanks,
>     kienan
> 
> 
> I updated to lttng-ust 2.13.8 as you suggested.  At first, I pulled in 
> the recipe from master branch of Yocto, but had the same problem as 
> before after rebuilding.
> 
> Next, I downloaded the 2.13.8 lttng-ust tarball from the lttng site and 
> setup a native build environment on my target and built lttng-ust 2.13.8 
> and my app as a second independent build method for sanity check.  I can 
> report that I get the exact same result as before this way too.
> 
> In both cases, I verified that I had the commit you referenced above.
> 
> I did a backtrace of the three threads captured in the coredump and show 
> them below in hopes it will shed light on what I need to try next.
> 
> (gdb) thread apply all backtrace
> 
> Thread 3 (Thread 0xffffbe7de7e0 (LWP 559)):
> #0  syscall () at ../sysdeps/unix/sysv/linux/aarch64/syscall.S:38
> #1  0x0000ffffbeef1bb8 in lttng_ust_futex (val3=0, uaddr2=0x0, 
> timeout=0x0, val=0, op=0, uaddr=0xffffbefd8000) at 
> ../../../src/lib/lttng-ust/futex.h:56
> #2  lttng_ust_futex_async (op=0, val=0, timeout=0x0, uaddr2=0x0, val3=0, 
> uaddr=0xffffbefd8000) at ../../../src/lib/lttng-ust/futex.h:88
> #3  wait_for_sessiond (sock_info=0xffffbef6b638 <global_apps>) at 
> lttng-ust-comm.c:1761
> #4  ust_listener_thread (arg=0xffffbef6b638 <global_apps>) at 
> lttng-ust-comm.c:1832
> #5  0x0000ffffbe9206a8 in start_thread (arg=0xffffc1bd8687) at 
> pthread_create.c:442
> #6  0x0000ffffbe98801c in thread_start () at 
> ../sysdeps/unix/sysv/linux/aarch64/clone.S:79
> 
> Thread 2 (Thread 0xffffbdfce7e0 (LWP 560)):
> #0  syscall () at ../sysdeps/unix/sysv/linux/aarch64/syscall.S:38
> #1  0x0000ffffbeef1bb8 in lttng_ust_futex (val3=0, uaddr2=0x0, 
> timeout=0x0, val=0, op=0, uaddr=0xffffbefd7000) at 
> ../../../src/lib/lttng-ust/futex.h:56
> #2  lttng_ust_futex_async (op=0, val=0, timeout=0x0, uaddr2=0x0, val3=0, 
> uaddr=0xffffbefd7000) at ../../../src/lib/lttng-ust/futex.h:88
> #3  wait_for_sessiond (sock_info=0xffffbef695e0 <local_apps>) at 
> lttng-ust-comm.c:1761
> #4  ust_listener_thread (arg=0xffffbef695e0 <local_apps>) at 
> lttng-ust-comm.c:1832
> #5  0x0000ffffbe9206a8 in start_thread (arg=0xffffc1bd8687) at 
> pthread_create.c:442
> #6  0x0000ffffbe98801c in thread_start () at 
> ../sysdeps/unix/sysv/linux/aarch64/clone.S:79
> 
> Thread 1 (Thread 0xffffbefcf460 (LWP 545)):
> #0  __strlen_asimd () at ../sysdeps/aarch64/multiarch/strlen_asimd.S:96
> #1  0x0000ffffbe834bd0 in lttng_ust_tp_validate_event_name 
> (tp=0xaaaab8f14de0 
> <lttng_ust_tracepoint_hello_world___my_first_tracepoint>, 
> tp=0xaaaab8f14de0 
> <lttng_ust_tracepoint_hello_world___my_first_tracepoint>) at 
> tracepoint.c:143
> #2  add_callsite (tp=0xaaaab8f14de0 
> <lttng_ust_tracepoint_hello_world___my_first_tracepoint>, 
> lib=0xaaaae74fad30) at tracepoint.c:412
> #3  lib_register_callsites (lib=0xaaaae74fad30) at tracepoint.c:552
> #4  lttng_ust_tracepoint_module_register (tracepoints_start=<optimized 
> out>, tracepoints_count=<optimized out>) at tracepoint.c:956
> #5  0x0000aaaab8758204 in lttng_ust.tracepoints.ptrs_init ()
> #6  0x0000ffffbe8cb30c in call_init (env=<optimized out>, 
> argv=0xffffc1bd8c88, argc=1) at ../csu/libc-start.c:145
> #7  __libc_start_main_impl (main=0xaaaab867aabc <main>, argc=1, 
> argv=0xffffc1bd8c88, init=<optimized out>, fini=<optimized out>, 
> rtld_fini=<optimized out>, stack_end=<optimized out>) at 
> ../csu/libc-start.c:376
> #8  0x0000aaaab867a7f0 in _start () at ../sysdeps/aarch64/start.S:81
> 
> Regards,
> 
> Brian


More information about the lttng-dev mailing list