[Gc] race? leads to segfault in GC_suspend_all's call to pthread_kill

Jim Meyering jim at meyering.net
Thu May 5 13:46:38 PDT 2011


Hello,

I use libgc in iwhd (http://git.fedorahosted.org/git/?p=iwhd.git)
and have been very happy with it so far.

However, when I generate many parallel requests to
the iwhd daemon, I see this segfault during garbage collection:

Core was generated by `iwhd -c /etc/iwhd/conf.js -d localhost 27017'.
Program terminated with signal 11, Segmentation fault.
#0  __pthread_kill (threadid=140339734116096, signo=30)
    at ../nptl/sysdeps/unix/sysv/linux/pthread_kill.c:43
43        pid_t tid = atomic_forced_read (pd->tid);
Missing separate debuginfos, use: debuginfo-install hail-0.8-0.2.gf9c5b967.el6_0.x86_64 jansson-1.2-1.el6_0.x86_64 libmicrohttpd-0.9.6-1.el6_0.x86_64 mongodb-1.6.4-3.el6_0.x86_64
(gdb) p pd
$1 = (struct pthread *) 0x7fa363fff700
(gdb) bt
#0  __pthread_kill (threadid=140339734116096, signo=30)
    at ../nptl/sysdeps/unix/sysv/linux/pthread_kill.c:43
#1  0x000000308201da67 in GC_suspend_all () at pthread_stop_world.c:355
#2  0x000000308201dac2 in GC_stop_world () at pthread_stop_world.c:395
#3  0x000000308200d80f in GC_stopped_mark (stop_func=
    0x308200ccb0 <GC_never_stop_func>) at alloc.c:474
#4  0x000000308200daef in GC_try_to_collect_inner (stop_func=
    0x308200ccb0 <GC_never_stop_func>) at alloc.c:362
#5  0x000000308200dccc in GC_collect_or_expand (
    needed_blocks=<value optimized out>, ignore_off_page=<value optimized out>)
    at alloc.c:1017
#6  0x000000308200e320 in GC_allocobj (gran=42, kind=1) at alloc.c:1064
#7  0x0000003082012d6a in GC_generic_malloc_inner (lb=536, k=1) at malloc.c:119
#8  0x0000003082012e18 in GC_generic_malloc (lb=536, k=1) at malloc.c:159
#9  0x000000308201310e in GC_core_malloc (lb=536) at malloc.c:286
#10 0x0000000000422611 in access_handler (cctx=0x7fffb4fd3330, conn=
    0x7fa37c001180, url=
    0x7fa35c0008c4 "/images/5f6a5844-b8a2-4071-8b1d-e55ca5045f37/target",
    method=0x7fa35c0008c0 "GET", version=0x7fa35c0008f8 "HTTP/1.1", data=0x0,
    data_size=0x7fa37a0fbaf8, rctx=0x7fa37c0011a8) at rest.c:2176
#11 0x00000030814044a9 in ?? () from /usr/lib64/libmicrohttpd.so.10
#12 0x0000003081405648 in MHD_connection_handle_idle ()
   from /usr/lib64/libmicrohttpd.so.10
#13 0x0000003081409315 in ?? () from /usr/lib64/libmicrohttpd.so.10
#14 0x00000030780077e1 in start_thread (arg=0x7fa37a0fc700)
    at pthread_create.c:301
#15 0x00000030778e68ed in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Looking at GC_suspend_all's *p, I see that the stack_ptr
address corresponds to a thread that terminated normally:

  (gdb) p *p
  $2 = {
    next = 0x13b3960,
    id = 140319506945792,
    stop_info = {
      last_stop_count = 0,
      stack_ptr = 0x7f9eae5de000 <Address 0x7f9eae5de000 out of bounds>
    },
    flags = 2,
    thread_blocked = 0,
    stack_end = 0x7f9eae5de000 <Address 0x7f9eae5de000 out of bounds>,
    activation_frame = 0x0,
    status = 0x0,
    finalizer_nested = 0,
    finalizer_skipped = 0,
    tlfs = {
      ptrfree_freelists = {0x1 <repeats 25 times>},
      normal_freelists = {0x1, 0xb, 0x4, 0x11, 0x1, 0x7, 0x1, 0x1, 0x1, 0x1, 0xc,
      0x1 <repeats 14 times>},
      gcj_freelists = {0xffffffffffffffff, 0x1 <repeats 24 times>}
    }
  }

Bear in mind that I'm relatively new to using gc,
so I may have done something wrong.  For example,
a few months ago there was a thread started via a library
that was not GC-initialized.  I learned quickly that
such threads need to be GC-enabled :-)

Any suggestion would be most welcome.

Jim

In case it helps, here are all thread backtraces from that same session:

(gdb) thread apply all bt

Thread 16 (Thread 0x7f9eae4dc700 (LWP 11585)):
#0  __lll_lock_wait_private ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:100
#1  0x00007f9eb0b376fe in _L_lock_57 () from /lib64/libc-2.13.90.so
#2  0x00007f9eb0b375fd in ___printf_chk (flag=-1327648432, format=
    0x4283f0 "%d producer posting %zu bytes as %ld (total %u error %u)\n")
    at printf_chk.c:32
#3  0x000000000041612a in printf (__fmt=
    0x4283f0 "%d producer posting %zu bytes as %ld (total %u error %u)\n")
    at /usr/include/bits/stdio2.h:105
#4  pipe_prod_signal (ps=0x13c7d90, ptr=<optimized out>, total=2092)
    at mpipe.c:168
#5  0x000000000041c05a in proxy_put_data (cctx=<optimized out>, conn=0x122cc80,
    url=0x7f9eaecde014 "/b-13/9756a40c-7668-11e0-0022-0015c5f4d7e4",
    method=<optimized out>, version=<optimized out>, data=<optimized out>,
    data_size=0x7f9eae4dbba8, rctx=0x122cca8) at rest.c:482
#6  0x000000000041b8c1 in access_handler (cctx=0x7fff61672550, conn=0x122cc80,
    url=0x7f9eaecde014 "/b-13/9756a40c-7668-11e0-0022-0015c5f4d7e4", method=
    0x7f9eaecde010 "PUT", version=0x7f9eaecde03f "HTTP/1.1", data=
    0x7f9eaecde820 "652\n19653\n19654\n19655\n19656\n19657\n19658\n19659\n19660\n19661\n19662\n19663\n19664\n19665\n19666\n19667\n19668\n19669\n19670\n19671\n19672\n19673\n19674\n19675\n19676\n19677\n19678\n19679\n19680\n19681\n19682\n19683\n19684\n1968"..., data_size=0x7f9eae4dbba8, rctx=0x122cca8) at rest.c:2181
#7  0x00007f9eb127de44 in MHD_connection_handle_idle ()
   from /usr/lib64/libmicrohttpd.so.10
#8  0x00007f9eb127f67f in ?? () from /usr/lib64/libmicrohttpd.so.10
#9  0x00007f9eb1698cd1 in start_thread (arg=0x7f9eae4dc700)
    at pthread_create.c:305
#10 0x00007f9eb0b21dfd in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 15 (Thread 0x7f9eaa8d2700 (LWP 11594)):
#0  pthread_cond_wait@@GLIBC_2.3.2 ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:165
#1  0x0000000000416039 in pipe_prod_signal (ps=0x13c7110, ptr=<optimized out>,
    total=<optimized out>) at mpipe.c:172
#2  0x000000000041c05a in proxy_put_data (cctx=<optimized out>, conn=0x122c980,
    url=0x7f9eae9db014 "/b-13/9756a40c-7668-11e0-0024-0015c5f4d7e4",
    method=<optimized out>, version=<optimized out>, data=<optimized out>,
    data_size=0x7f9eaa8d1ba8, rctx=0x122c9a8) at rest.c:482
#3  0x000000000041b8c1 in access_handler (cctx=0x7fff61672550, conn=0x122c980,
    url=0x7f9eae9db014 "/b-13/9756a40c-7668-11e0-0024-0015c5f4d7e4", method=
    0x7f9eae9db010 "PUT", version=0x7f9eae9db03f "HTTP/1.1", data=
    0x7f9eae9db820 "10283\n10284\n10285\n10286\n10287\n10288\n10289\n10290\n10291\n10292\n10293\n10294\n10295\n10296\n10297\n10298\n10299\n10300\n10301\n10302\n10303\n10304\n10305\n10306\n10307\n10308\n10309\n10310\n10311\n10312\n10313\n10314\n10315\n10"..., data_size=0x7f9eaa8d1ba8, rctx=0x122c9a8) at rest.c:2181
#4  0x00007f9eb127de44 in MHD_connection_handle_idle ()
   from /usr/lib64/libmicrohttpd.so.10
#5  0x00007f9eb127f67f in ?? () from /usr/lib64/libmicrohttpd.so.10
#6  0x00007f9eb1698cd1 in start_thread (arg=0x7f9eaa8d2700)
    at pthread_create.c:305
#7  0x00007f9eb0b21dfd in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 14 (Thread 0x7f9ead3d9700 (LWP 11580)):
#0  pthread_cond_wait@@GLIBC_2.3.2 ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:165
#1  0x0000000000416039 in pipe_prod_signal (ps=0x13c5110, ptr=<optimized out>,
    total=<optimized out>) at mpipe.c:172
#2  0x000000000041c05a in proxy_put_data (cctx=<optimized out>, conn=0x122bb50,
    url=0x7f9eaefe1014 "/b-13/9756a40c-7668-11e0-0020-0015c5f4d7e4",
    method=<optimized out>, version=<optimized out>, data=<optimized out>,
    data_size=0x7f9ead3d8ba8, rctx=0x122bb78) at rest.c:482
#3  0x000000000041b8c1 in access_handler (cctx=0x7fff61672550, conn=0x122bb50,
    url=0x7f9eaefe1014 "/b-13/9756a40c-7668-11e0-0020-0015c5f4d7e4", method=
    0x7f9eaefe1010 "PUT", version=0x7f9eaefe103f "HTTP/1.1", data=
    0x7f9eaefe1820 "\n4719\n4720\n4721\n4722\n4723\n4724\n4725\n4726\n4727\n4728\n4729\n4730\n4731\n4732\n4733\n4734\n4735\n4736\n4737\n4738\n4739\n4740\n4741\n4742\n4743\n4744\n4745\n4746\n4747\n4748\n4749\n4750\n4751\n4752\n4753\n4754\n4755\n4756\n4757\n4758"..., data_size=0x7f9ead3d8ba8, rctx=0x122bb78) at rest.c:2181
#4  0x00007f9eb127de44 in MHD_connection_handle_idle ()
   from /usr/lib64/libmicrohttpd.so.10
#5  0x00007f9eb127f67f in ?? () from /usr/lib64/libmicrohttpd.so.10
#6  0x00007f9eb1698cd1 in start_thread (arg=0x7f9ead3d9700)
    at pthread_create.c:305
#7  0x00007f9eb0b21dfd in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

---Type <return> to continue, or q <return> to quit---
Thread 13 (Thread 0x7f9ea65ce700 (LWP 11581)):
#0  0x00007f9eb0a78794 in do_sigsuspend (set=0x3dcc669e00)
    at ../sysdeps/unix/sysv/linux/sigsuspend.c:63
#1  __sigsuspend (set=<optimized out>)
    at ../sysdeps/unix/sysv/linux/sigsuspend.c:78
#2  0x0000003dcc41f85c in GC_suspend_handler_inner (sig_arg=<optimized out>,
    context=<optimized out>) at pthread_stop_world.c:236
#3  0x0000003dcc41f8f3 in GC_suspend_handler (sig=30, info=<optimized out>,
    context=0x7f9ea65cd740) at pthread_stop_world.c:165
#4  <signal handler called>
#5  0x00007f9eb0b1569d in write () at ../sysdeps/unix/syscall-template.S:82
#6  0x00007f9eb0ab5373 in _IO_new_file_write (f=0x7f9eb0dd98e0, data=
    0x7f9eb1acb000, n=54) at fileops.c:1268
#7  0x00007f9eb0ab523a in new_do_write (fp=0x7f9eb0dd98e0, data=
    0x7f9eb1acb000 "8186 consumer done waiting\n8186 consumer done waiting\n023-0015c5f4d7e4\ng policy 0\nor 13\n40c-7668-11e0-0024-0015c5f4d7e4 (1470)\n 1 error 0)\nerror 0)\n-0015c5f4d7e4 (2946)\n8186 consumer about to wait for"..., to_do=
    54) at fileops.c:522
#8  0x00007f9eb0ab6985 in _IO_new_do_write (fp=<optimized out>,
    data=<optimized out>, to_do=54) at fileops.c:495
#9  0x00007f9eb0ab58b0 in _IO_new_file_sync (fp=0x7f9eb0dd98e0) at fileops.c:897
#10 0x00007f9eb0aaaa2b in _IO_fflush (fp=0x7f9eb0dd98e0) at iofflush.c:43
#11 0x0000000000415b2c in pipe_cons_wait (pp=0x13c12d0) at mpipe.c:78
#12 0x0000000000408ea3 in fs_put_child (ctx=0x13c12d0) at backend.c:1283
#13 0x0000003dcc41e702 in GC_inner_start_routine (sb=<optimized out>, arg=
    0x130bf80) at pthread_support.c:1216
#14 0x0000003dcc418205 in GC_call_with_stack_base (fn=0x36, arg=<optimized out>)
    at misc.c:1361
#15 0x00007f9eb1698cd1 in start_thread (arg=0x7f9ea65ce700)
    at pthread_create.c:305
#16 0x00007f9eb0b21dfd in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 12 (Thread 0x7f9ea5dcd700 (LWP 11554)):
#0  __lll_unlock_wake ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:377
#1  0x00007f9eb169bf4a in _L_unlock_559 () from /lib64/libpthread-2.13.90.so
#2  0x00007f9eb169be05 in __pthread_mutex_unlock_usercnt (mutex=0x13c5438, decr=
    0) at pthread_mutex_unlock.c:53
#3  0x00007f9eb169c978 in pthread_cond_wait@@GLIBC_2.3.2 ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:94
#4  0x0000000000416039 in pipe_prod_signal (ps=0x13c5430, ptr=<optimized out>,
    total=<optimized out>) at mpipe.c:172
#5  0x000000000041c05a in proxy_put_data (cctx=<optimized out>, conn=0x122e470,
    url=0x7f9eaeddf014 "/b-13/9756a40c-7668-11e0-0016-0015c5f4d7e4",
    method=<optimized out>, version=<optimized out>, data=<optimized out>,
    data_size=0x7f9ea5dccba8, rctx=0x122e498) at rest.c:482
#6  0x000000000041b8c1 in access_handler (cctx=0x7fff61672550, conn=0x122e470,
    url=0x7f9eaeddf014 "/b-13/9756a40c-7668-11e0-0016-0015c5f4d7e4", method=
    0x7f9eaeddf010 "PUT", version=0x7f9eaeddf03f "HTTP/1.1", data=
    0x7f9eaede0296 "18224\n18225\n18226\n18227\n18228\n18229\n18230\n18231\n18232\n18233\n18234\n18235\n18236\n18237\n18238\n18239\n18240\n18241\n18242\n18243\n18244\n18245\n18246\n18247\n18248\n18249\n18250\n18251\n18252\n18253\n18254\n18255\n18256\n18"..., data_size=0x7f9ea5dccba8, rctx=0x122e498) at rest.c:2181
#7  0x00007f9eb127de44 in MHD_connection_handle_idle ()
   from /usr/lib64/libmicrohttpd.so.10
#8  0x00007f9eb127f67f in ?? () from /usr/lib64/libmicrohttpd.so.10
#9  0x00007f9eb1698cd1 in start_thread (arg=0x7f9ea5dcd700)
    at pthread_create.c:305
#10 0x00007f9eb0b21dfd in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 11 (Thread 0x7f9eab0d3700 (LWP 11558)):
#0  __lll_lock_wait ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:140
#1  0x00007f9eb16a1a28 in _L_cond_lock_878 () from /lib64/libpthread-2.13.90.so
#2  0x00007f9eb16a17e9 in __pthread_mutex_cond_lock (mutex=0x13c5438)
    at ../nptl/pthread_mutex_lock.c:65
#3  0x00007f9eb169ca99 in pthread_cond_wait@@GLIBC_2.3.2 ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:239
#4  0x0000000000415abb in pipe_cons_wait (pp=0x13c15a0) at mpipe.c:77
#5  0x0000000000408ea3 in fs_put_child (ctx=0x13c15a0) at backend.c:1283
#6  0x0000003dcc41e702 in GC_inner_start_routine (sb=<optimized out>, arg=
    0x130bf80) at pthread_support.c:1216
#7  0x0000003dcc418205 in GC_call_with_stack_base (fn=0xfffffffffffffe00,
    arg=<optimized out>) at misc.c:1361
#8  0x00007f9eb1698cd1 in start_thread (arg=0x7f9eab0d3700)
    at pthread_create.c:305
#9  0x00007f9eb0b21dfd in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115
---Type <return> to continue, or q <return> to quit---

Thread 10 (Thread 0x7f9eaa0d1700 (LWP 11588)):
#0  0x00007f9eb0a78794 in do_sigsuspend (set=0x3dcc669e00)
    at ../sysdeps/unix/sysv/linux/sigsuspend.c:63
#1  __sigsuspend (set=<optimized out>)
    at ../sysdeps/unix/sysv/linux/sigsuspend.c:78
#2  0x0000003dcc41f85c in GC_suspend_handler_inner (sig_arg=<optimized out>,
    context=<optimized out>) at pthread_stop_world.c:236
#3  0x0000003dcc41f8f3 in GC_suspend_handler (sig=30, info=<optimized out>,
    context=0x7f9eaa0d0780) at pthread_stop_world.c:165
#4  <signal handler called>
#5  pthread_cond_wait@@GLIBC_2.3.2 ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:163
#6  0x0000000000415abb in pipe_cons_wait (pp=0x13c1210) at mpipe.c:77
#7  0x0000000000408ea3 in fs_put_child (ctx=0x13c1210) at backend.c:1283
#8  0x0000003dcc41e702 in GC_inner_start_routine (sb=<optimized out>, arg=
    0x130bf80) at pthread_support.c:1216
#9  0x0000003dcc418205 in GC_call_with_stack_base (fn=0xca, arg=<optimized out>)
    at misc.c:1361
#10 0x00007f9eb1698cd1 in start_thread (arg=0x7f9eaa0d1700)
    at pthread_create.c:305
#11 0x00007f9eb0b21dfd in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 9 (Thread 0x7f9eadcdb700 (LWP 11587)):
#0  0x00007f9eb0a78794 in do_sigsuspend (set=0x3dcc669e00)
    at ../sysdeps/unix/sysv/linux/sigsuspend.c:63
#1  __sigsuspend (set=<optimized out>)
    at ../sysdeps/unix/sysv/linux/sigsuspend.c:78
#2  0x0000003dcc41f85c in GC_suspend_handler_inner (sig_arg=<optimized out>,
    context=<optimized out>) at pthread_stop_world.c:236
#3  0x0000003dcc41f8f3 in GC_suspend_handler (sig=30, info=<optimized out>,
    context=0x7f9eadcda780) at pthread_stop_world.c:165
#4  <signal handler called>
#5  pthread_cond_wait@@GLIBC_2.3.2 ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:163
#6  0x0000000000415abb in pipe_cons_wait (pp=0x13c1270) at mpipe.c:77
#7  0x0000000000408ea3 in fs_put_child (ctx=0x13c1270) at backend.c:1283
#8  0x0000003dcc41e702 in GC_inner_start_routine (sb=<optimized out>, arg=
    0x130bf80) at pthread_support.c:1216
#9  0x0000003dcc418205 in GC_call_with_stack_base (fn=0xca, arg=<optimized out>)
    at misc.c:1361
#10 0x00007f9eb1698cd1 in start_thread (arg=0x7f9eadcdb700)
    at pthread_create.c:305
#11 0x00007f9eb0b21dfd in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 8 (Thread 0x7f9eaf9e2700 (LWP 8192)):
#0  0x00007f9eb0b1e707 in munmap () at ../sysdeps/unix/syscall-template.S:82
#1  0x00007f9eb0abab3a in munmap_chunk (p=0x7f9eaeadc000) at malloc.c:3548
#2  0x00007f9eb1281930 in MHD_pool_destroy ()
   from /usr/lib64/libmicrohttpd.so.10
#3  0x00007f9eb127fa98 in ?? () from /usr/lib64/libmicrohttpd.so.10
#4  0x00007f9eb1280875 in ?? () from /usr/lib64/libmicrohttpd.so.10
#5  0x00007f9eb1698cd1 in start_thread (arg=0x7f9eaf9e2700)
    at pthread_create.c:305
#6  0x00007f9eb0b21dfd in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 7 (Thread 0x7f9eb1a99800 (LWP 8186)):
#0  sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86
#1  0x0000000000407a8b in main (argc=8, argv=0x7fff61672678) at rest.c:2414

Thread 6 (Thread 0x7f9ea75d0700 (LWP 11584)):
#0  __lll_lock_wait ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:140
#1  0x00007f9eb169aeb7 in _L_lock_862 () from /lib64/libpthread-2.13.90.so
#2  0x00007f9eb169ad0b in __pthread_mutex_lock (mutex=0x3dcc6692e0)
    at pthread_mutex_lock.c:65
#3  0x0000003dcc41e645 in GC_register_my_thread (sb=0x7f9ea75cfb10)
    at pthread_support.c:1168
#4  0x000000000041b893 in access_handler (cctx=0x7fff61672550, conn=0x122c5c0,
    url=0x7f9eaeee0014 "/b-13/9756a40c-7668-11e0-0021-0015c5f4d7e4", method=
    0x7f9eaeee0010 "PUT", version=0x7f9eaeee003f "HTTP/1.1", data=
    0x7f9eaeee0820 "3\n13094\n13095\n13096\n13097\n13098\n13099\n13100\n13101\n13102\n13103\n13104\n13105\n13106\n13107\n13108\n13109\n13110\n13111\n13112\n13113\n13114\n13115\n13116\n13117\n13118\n13119\n13120\n13121\n13122\n13123\n13124\n13125\n13126\n"..., data_size=0x7f9ea75cfba8, rctx=0x122c5e8) at rest.c:2178
#5  0x00007f9eb127de44 in MHD_connection_handle_idle ()
   from /usr/lib64/libmicrohttpd.so.10
---Type <return> to continue, or q <return> to quit---
#6  0x00007f9eb127f67f in ?? () from /usr/lib64/libmicrohttpd.so.10
#7  0x00007f9eb1698cd1 in start_thread (arg=0x7f9ea75d0700)
    at pthread_create.c:305
#8  0x00007f9eb0b21dfd in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 5 (Thread 0x7f9eb01e3700 (LWP 8191)):
#0  sem_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S:86
#1  0x00000000004168df in repl_worker (notused=<optimized out>) at replica.c:169
#2  0x0000003dcc41e702 in GC_inner_start_routine (sb=<optimized out>, arg=
    0x130bfc0) at pthread_support.c:1216
#3  0x0000003dcc418205 in GC_call_with_stack_base (fn=0xfffffffffffffe00,
    arg=<optimized out>) at misc.c:1361
#4  0x00007f9eb1698cd1 in start_thread (arg=0x7f9eb01e3700)
    at pthread_create.c:305
#5  0x00007f9eb0b21dfd in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 4 (Thread 0x7f9eac3d7700 (LWP 11595)):
#0  0x00007f9eb0a78794 in do_sigsuspend (set=0x3dcc669e00)
    at ../sysdeps/unix/sysv/linux/sigsuspend.c:63
#1  __sigsuspend (set=<optimized out>)
    at ../sysdeps/unix/sysv/linux/sigsuspend.c:78
#2  0x0000003dcc41f85c in GC_suspend_handler_inner (sig_arg=<optimized out>,
    context=<optimized out>) at pthread_stop_world.c:236
#3  0x0000003dcc41f8f3 in GC_suspend_handler (sig=30, info=<optimized out>,
    context=0x7f9eac3d6700) at pthread_stop_world.c:165
#4  <signal handler called>
#5  __lll_lock_wait_private ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:98
#6  0x00007f9eb0aaaac7 in _L_lock_32 () from /lib64/libc-2.13.90.so
#7  0x00007f9eb0aaaa0f in _IO_fflush (fp=0x7f9eb0dd98e0) at iofflush.c:42
#8  0x0000000000415b2c in pipe_cons_wait (pp=0x13c10f0) at mpipe.c:78
#9  0x0000000000408ea3 in fs_put_child (ctx=0x13c10f0) at backend.c:1283
#10 0x0000003dcc41e702 in GC_inner_start_routine (sb=<optimized out>, arg=
    0x130bf80) at pthread_support.c:1216
#11 0x0000003dcc418205 in GC_call_with_stack_base (fn=0xca, arg=<optimized out>)
    at misc.c:1361
#12 0x00007f9eb1698cd1 in start_thread (arg=0x7f9eac3d7700)
    at pthread_create.c:305
#13 0x00007f9eb0b21dfd in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 3 (Thread 0x7f9ea90cf700 (LWP 11549)):
#0  __lll_lock_wait_private ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:100
#1  0x00007f9eb0aaaac7 in _L_lock_32 () from /lib64/libc-2.13.90.so
#2  0x00007f9eb0aaaa0f in _IO_fflush (fp=0x7f9eb0dd98e0) at iofflush.c:42
#3  0x00000000004160a5 in pipe_prod_signal (ps=0x13bfd90, ptr=<optimized out>,
    total=<optimized out>) at mpipe.c:173
#4  0x000000000041c05a in proxy_put_data (cctx=<optimized out>, conn=0x122de70,
    url=0x7f9eb1997014 "/b-13/9756a40c-7668-11e0-0015-0015c5f4d7e4",
    method=<optimized out>, version=<optimized out>, data=<optimized out>,
    data_size=0x7f9ea90ceba8, rctx=0x122de98) at rest.c:482
#5  0x000000000041b8c1 in access_handler (cctx=0x7fff61672550, conn=0x122de70,
    url=0x7f9eb1997014 "/b-13/9756a40c-7668-11e0-0015-0015c5f4d7e4", method=
    0x7f9eb1997010 "PUT", version=0x7f9eb199703f "HTTP/1.1", data=
    0x7f9eb1997820 "1\n8092\n8093\n8094\n8095\n8096\n8097\n8098\n8099\n8100\n8101\n8102\n8103\n8104\n8105\n8106\n8107\n8108\n8109\n8110\n8111\n8112\n8113\n8114\n8115\n8116\n8117\n8118\n8119\n8120\n8121\n8122\n8123\n8124\n8125\n8126\n8127\n8128\n8129\n8130\n813"..., data_size=0x7f9ea90ceba8, rctx=0x122de98) at rest.c:2181
#6  0x00007f9eb127de44 in MHD_connection_handle_idle ()
   from /usr/lib64/libmicrohttpd.so.10
#7  0x00007f9eb127f67f in ?? () from /usr/lib64/libmicrohttpd.so.10
#8  0x00007f9eb1698cd1 in start_thread (arg=0x7f9ea90cf700)
    at pthread_create.c:305
#9  0x00007f9eb0b21dfd in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 2 (Thread 0x7f9ea45ca700 (LWP 11553)):
#0  pthread_cond_wait@@GLIBC_2.3.2 ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:165
#1  0x0000000000415abb in pipe_cons_wait (pp=0x13c1750) at mpipe.c:77
#2  0x0000000000408ea3 in fs_put_child (ctx=0x13c1750) at backend.c:1283
#3  0x0000003dcc41e702 in GC_inner_start_routine (sb=<optimized out>, arg=
    0x130bf80) at pthread_support.c:1216
#4  0x0000003dcc418205 in GC_call_with_stack_base (fn=0xfffffffffffffe00,
    arg=<optimized out>) at misc.c:1361
#5  0x00007f9eb1698cd1 in start_thread (arg=0x7f9ea45ca700)
    at pthread_create.c:305
---Type <return> to continue, or q <return> to quit---
#6  0x00007f9eb0b21dfd in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115

Thread 1 (Thread 0x7f9eacbd8700 (LWP 11589)):
#0  __pthread_kill (threadid=140319506945792, signo=30)
    at ../nptl/sysdeps/unix/sysv/linux/pthread_kill.c:43
#1  0x0000003dcc41f5e6 in GC_suspend_all () at pthread_stop_world.c:404
#2  0x0000003dcc41f9e0 in GC_stop_world () at pthread_stop_world.c:453
#3  0x0000003dcc40e652 in GC_stopped_mark (stop_func=
    0x3dcc40d980 <GC_never_stop_func>) at alloc.c:584
#4  0x0000003dcc40e96a in GC_try_to_collect_inner (stop_func=
    0x3dcc40d980 <GC_never_stop_func>) at alloc.c:436
#5  0x0000003dcc40ecb7 in GC_collect_or_expand (needed_blocks=1,
    ignore_off_page=0, retry=0) at alloc.c:1212
#6  0x0000003dcc40f29f in GC_allocobj (gran=1, kind=1) at alloc.c:1299
#7  0x0000003dcc4142aa in GC_generic_malloc_inner (lb=8, k=1) at malloc.c:126
#8  0x0000003dcc414358 in GC_generic_malloc (lb=8, k=1) at malloc.c:166
#9  0x0000003dcc414644 in GC_core_malloc (lb=8) at malloc.c:289
#10 0x0000000000417950 in yyalloc (size=8, yyscanner=0x131bf00) at qlexer.c:1987
#11 yyensure_buffer_stack (yyscanner=0x131bf00) at qlexer.c:1532
#12 yyensure_buffer_stack (yyscanner=0x131bf00) at qlexer.c:1519
#13 0x00000000004179e4 in yy_switch_to_buffer (new_buffer=0x131cfa0, yyscanner=
    0x131bf00) at qlexer.c:1319
#14 0x0000000000418f23 in yy_scan_buffer (base=0x13a6000 "0", size=3, yyscanner=
    0x131bf00) at qlexer.c:1593
#15 0x0000000000418fbc in yy_scan_bytes (yybytes=0x13a6020 "0", _yybytes_len=1,
    yyscanner=0x131bf00) at qlexer.c:1637
#16 0x00000000004195a3 in parse (text=<optimized out>) at qparser.y:401
#17 0x0000000000416c4c in replicate (url=
    0x7f9eacbd7990 "b-13/9756a40c-7668-11e0-0023-0015c5f4d7e4", size=108894,
    policy=0x13a6020 "0", ms=0x13c7640) at replica.c:290
#18 0x000000000041be34 in recheck_replication (ms=0x13c7640, policy=
    0x13a6020 "0") at rest.c:395
#19 0x000000000041c147 in proxy_put_data (cctx=<optimized out>, conn=0x122c360,
    url=<optimized out>, method=<optimized out>, version=<optimized out>,
    data=<optimized out>, data_size=0x7f9eacbd7b48, rctx=0x122c388)
    at rest.c:511
#20 0x000000000041b8c1 in access_handler (cctx=0x7fff61672550, conn=0x122c360,
    url=0x7f9eaebdd014 "/b-13/9756a40c-7668-11e0-0023-0015c5f4d7e4", method=
    0x7f9eaebdd010 "PUT", version=0x7f9eaebdd03f "HTTP/1.1", data=0x0,
    data_size=0x7f9eacbd7b48, rctx=0x122c388) at rest.c:2181
#21 0x00007f9eb127cac9 in ?? () from /usr/lib64/libmicrohttpd.so.10
#22 0x00007f9eb127d458 in MHD_connection_handle_idle ()
   from /usr/lib64/libmicrohttpd.so.10
#23 0x00007f9eb127f67f in ?? () from /usr/lib64/libmicrohttpd.so.10
#24 0x00007f9eb1698cd1 in start_thread (arg=0x7f9eacbd8700)
    at pthread_create.c:305
#25 0x00007f9eb0b21dfd in clone ()
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S:115
(gdb)


More information about the Gc mailing list