[Gc] GCed program exists with SIGXCPU

Alexander Herz <[email protected]> Thu, 23 Apr 2015 15:30:31 +0200
Newsgroups gmane.comp.programming.garbage-collection.boehmgc
Message-ID <[email protected]>
Hi guys,

I just ran some code that uses boehm on a new machine (Linux
serverseidl6 3.13.0-27-generic #50-Ubuntu SMP Thu May 15 18:06:16 UTC
2014 x86_64 x86_64 x86_64 GNU/Linux) and the program terminates with
SIGXCPU (below is the backtrace of the core dump). I know the collector
uses these signals to interact with the threads but I fail to understand
how this signal can ever propagate so as to kill the application. Any
ideas?

Thx,
Alex

Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Core was generated by `./tmp/test.run'.
Program terminated with signal SIGXCPU, CPU time limit exceeded.
#0  0x00007fc2ecb03062 in do_sigsuspend (set=0x7fc2edb10980
<suspend_handler_mask>) at ../sysdeps/unix/sysv/linux/sigsuspend.c:31
31    ../sysdeps/unix/sysv/linux/sigsuspend.c: Datei oder Verzeichnis
nicht gefunden.
(gdb) backtrace
#0  0x00007fc2ecb03062 in do_sigsuspend (set=0x7fc2edb10980
<suspend_handler_mask>) at ../sysdeps/unix/sysv/linux/sigsuspend.c:31
#1  __GI___sigsuspend (set=set@entry=0x7fc2edb10980
<suspend_handler_mask>) at ../sysdeps/unix/sysv/linux/sigsuspend.c:45
#2  0x00007fc2ed8f21a2 in GC_suspend_handler_inner
(sig_arg=sig_arg@entry=0x1e <error: Cannot access memory at address
0x1e>, context=context@entry=0x7fc2e4f76800) at pthread_stop_world.c:255
#3  0x00007fc2ed8f2225 in GC_suspend_handler (sig=30, info=<optimized
out>, context=0x7fc2e4f76800) at pthread_stop_world.c:186
#4  <signal handler called>
#5  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:37
#6  0x00007fc2edd65673 in futex_wait (comparand=2, futex=0x7fc2ea15be2c)
at ../../include/tbb/machine/linux_common.h:60
#7  P (this=0x7fc2ea15be2c) at ../../src/tbb/semaphore.h:206
#8  commit_wait (c=<synthetischer Zeiger>, this=0x7fc2ea15be20) at
../../src/rml/include/../server/thread_monitor.h:259
#9  tbb::internal::rml::private_worker::run (this=0x7fc2ea15be00) at
../../src/tbb/private_server.cpp:280
#10 0x00007fc2edd65699 in
tbb::internal::rml::private_worker::thread_routine (arg=<optimized out>)
at ../../src/tbb/private_server.cpp:226
#11 0x00007fc2ed8f0663 in GC_inner_start_routine (sb=<Fehler beim Lesen
der Variable: value has been optimized out>, arg=<Fehler beim Lesen der
Variable: value has been optimized out>)
    at pthread_start.c:56
#12 0x00007fc2ed8eb378 in GC_call_with_stack_base (fn=<optimized out>,
arg=<optimized out>) at misc.c:1597
#13 0x00007fc2ece99182 in start_thread (arg=0x7fc2e4f77700) at
pthread_create.c:312