#1010890 Segfault with "bpftrace -l '*mount*'"

Package:
bpftrace
Source:
bpftrace
Description:
high-level tracing language for Linux eBPF
Submitter:
Philipp Marek
Date:
2022-05-30 08:45:10 UTC
Severity:
important
#1010890#5
Date:
2022-05-12 10:13:53 UTC
From:
To:
Listing probes is not possible:

    # LC_ALL=C gdb --args bpftrace -l '*mount*'
    ...
    Program received signal SIGSEGV, Segmentation fault.
    __strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:74
    Download failed: Invalid argument.  Continuing without source file ./string/../sysdeps/x86_64/multiarch/strlen-avx2.S.
    74      ../sysdeps/x86_64/multiarch/strlen-avx2.S: No such file or directory.
    (gdb) bt
    #0  __strlen_avx2 () at ../sysdeps/x86_64/multiarch/strlen-avx2.S:74
    #1  0x00007fffef938618 in __vfprintf_internal (s=s@entry=0x7fffffff98a0, format=0x7ffff7f84457 "libbpf: loading %s\n", ap=0x7fffffffb9e0, mode_flags=2) at vfprintf-internal.c:1647
    #2  0x00007fffef938dc4 in buffered_vfprintf (s=0x7fffefa9f5e0 <_IO_2_1_stderr_>, format=<optimized out>, args=<optimized out>, mode_flags=<optimized out>) at vfprintf-internal.c:2295
    #3  0x00007ffff7f5b1bb in ?? () from /lib/x86_64-linux-gnu/libbpf.so.0
    #4  0x00007ffff7f677c2 in ?? () from /lib/x86_64-linux-gnu/libbpf.so.0
    #5  0x00007ffff7f6ec1d in bpf_prog_load_xattr () from /lib/x86_64-linux-gnu/libbpf.so.0
    #6  0x00007ffff7f6ee13 in bpf_prog_load_deprecated () from /lib/x86_64-linux-gnu/libbpf.so.0
    #7  0x00007ffff7dc0e17 in libbpf_bpf_prog_load () from /usr/local/lib/libbcc_bpf.so.0
    #8  0x00007ffff7dc2329 in bcc_prog_load_xattr () from /usr/local/lib/libbcc_bpf.so.0
    #9  0x00007ffff7dc2b7a in bcc_prog_load () from /usr/local/lib/libbcc_bpf.so.0
    #10 0x00005555555e4295 in ?? ()
    #11 0x00005555555e4b41 in ?? ()
    #12 0x00005555555e4cc7 in ?? ()
    #13 0x0000555555686140 in ?? ()
    #14 0x0000555555686911 in ?? ()
    #15 0x0000555555678090 in ?? ()
    #16 0x00005555556795eb in ?? ()
    #17 0x000055555558c32b in ?? ()
    #18 0x00007fffef8f37fd in __libc_start_main (main=0x55555558a580, argc=3, argv=0x7fffffffec68, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffec58) at ../csu/libc-start.c:332
    #19 0x00005555555b11fa in ?? ()

That makes it quite hard to use.


Can't even be used, I believe:

    # bpftrace -e  'tracepoint:syscalls:sys_enter_mount { ustack(); } '
    Attaching 1 probe...
    Segmentation fault


A locally recompiled bpftrace (38c099dff9100bafeaaa7cee865f4dfda58134ac)
works as expected.

#1010890#10
Date:
2022-05-29 14:53:08 UTC
From:
To:

Hello Marek,
I tried if I could reproduce the crash, when I saw your backtrace
shows a library loaded from /usr/local/lib.
This looks like you installed a local version of the library?
Does the crash also occur if you move these local libraries,
so the process does use the version supplied by Debian?

Kind regards,
Bernhard

#1010890#15
Date:
2022-05-30 05:59:53 UTC
From:
To:
Hi Bernhard,

Ah, thanks.
No, it doesn't crash then -- seems that happened in the one shell
that had the /usr/bin/bpftrace path cached after I built and
installed bpftrace from source...


Thanks!


Ph.

#1010890#20
Date:
2022-05-30 08:41:33 UTC
From:
To:
Am 30.05.22 um 07:59 schrieb Philipp Marek:

Great, then I guess it is ok to close this bug.