Hello!

I am having a crash in libunwind while using heaptrack to profile my
application.

Here is the callstack:

Thread 56 (Thread 0x7ffeff661700 (LWP 5926)):
#0  0x00007ffff71d9428 in __GI_raise (sig=sig@entry=6) at
../sysdeps/unix/sysv/linux/raise.c:54
#1  0x00007ffff71db02a in __GI_abort () at abort.c:89
#2  0x00007ffff55eeed5 in os::abort(bool) () from
/path/to/mysdk/build/java/1.8.152-0/amd64-linux/lib/amd64/server/libjvm.so
#3  0x00007ffff5792a33 in VMError::report_and_die() () from
/path/to/mysdk/build/java/1.8.152-0/amd64-linux/lib/amd64/server/libjvm.so
#4  0x00007ffff55f4def in JVM_handle_linux_signal () from
/path/to/mysdk/build/java/1.8.152-0/amd64-linux/lib/amd64/server/libjvm.so
#5  0x00007ffff55eaea3 in signalHandler(int, siginfo*, void*) () from
/path/to/mysdk/build/java/1.8.152-0/amd64-linux/lib/amd64/server/libjvm.so
#6  0x0000xxxxxxxxxxxx in handleCustom (sc_=<optimized out>,
si=<optimized out>, code=11, handlerCode=11) at ??
#7  mySignalHandler (code=11, si=<optimized out>, sc_=<optimized out>) at ??
#8  <signal handler called>
#9  access_mem (as=<optimized out>, addr=29930553589,
val=0x7ffeff65eb90, write=<optimized out>, arg=<optimized out>) at
x86_64/Ginit.c:175
#10 0x00007ffff6f8829c in dwarf_get (c=0x7ffeff65f090,
c=0x7ffeff65f090, val=0x7ffeff65eb90, loc=...) at
../include/tdep-x86_64/libunwind_i.h:167
#11 _ULx86_64_step (cursor=cursor@entry=0x7ffeff65f090) at x86_64/Gstep.c:166
#12 0x00007ffff6f8942c in trace_init_addr (rsp=<optimized out>,
rbp=<optimized out>, rip=<optimized out>, cfa=31901497176,
cursor=0x7ffeff65f090, f=0x7fff4bfdc940) at x86_64/Gtrace.c:248
#13 trace_lookup (rsp=<optimized out>, rbp=<optimized out>,
rip=<optimized out>, cfa=31901497176, cache=<optimized out>,
cursor=0x7ffeff65f090) at x86_64/Gtrace.c:330
#14 _ULx86_64_tdep_trace (cursor=cursor@entry=0x7ffeff65f090,
buffer=buffer@entry=0x7ffeff65f928, size=size@entry=0x7ffeff65ecd4) at
x86_64/Gtrace.c:447
#15 0x00007ffff6f85db2 in unw_backtrace (buffer=0x7ffeff65f928,
size=64) at mi/backtrace.c:69
#16 0x00007ffff7bc19e0 in Trace::fill (this=0x7ffeff65f920, skip=3) at
/home/jcoulon/git/heaptrack/src/track/trace.h:61
#17 0x00007ffff7bbfbd0 in heaptrack_malloc (ptr=0x7ffec406b160,
size=8) at /home/jcoulon/git/heaptrack/src/track/libheaptrack.cpp:638
#18 0x00007ffff7bbd9dd in malloc (size=8) at
/home/jcoulon/git/heaptrack/src/track/heaptrack_preload.cpp:176
#19 0x00007ffff6c8ee78 in operator new(unsigned long) () from
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
#20 0x00007fff3a40f08e in __gnu_cxx::new_allocator<unsigned
long>::allocate (this=<optimized out>, __n=<optimized out>) at
/usr/include/c++/4.9/ext/new_allocator.h:104
#21 0x0000xxxxxxxxxxxx in ?? ()

I already reported this bug to heaptrack here:
https://bugs.kde.org/show_bug.cgi?id=390893

Maintainer of heaptrack thinks that the bug is in libunwind itself.

I am using:
* heaptrack version v1.0.0-119-g6e31841
* libunwind version v1.2-3-gac02808

I also noticed this report on the mailing list which look similar to my
problem:
http://lists.nongnu.org/archive/html/libunwind-devel/2017-12/msg00001.html

Unfortunately I couldn't make an simple open source example from my complex
proprietary app in order to reproduce the crash.

Thank you for your help.
_______________________________________________
Libunwind-devel mailing list
Libunwind-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/libunwind-devel

Reply via email to