* bug#19523: Segfault when creating thread with scm_with_guile @ 2015-01-06 14:27 Anthonin Bonnefoy 2016-06-22 21:27 ` Andy Wingo ` (2 more replies) 0 siblings, 3 replies; 6+ messages in thread From: Anthonin Bonnefoy @ 2015-01-06 14:27 UTC (permalink / raw) To: 19523 [-- Attachment #1: Type: text/plain, Size: 4551 bytes --] Hi all, I have segfaults occurring sometimes when threads are starting with scm_with_guile while main thread is using malloc. Example program: ``` #include <stdlib.h> #include <pthread.h> #include <libguile.h> static void *a_libguile_thread(void *unused) { } static void *a_libguile_thread_(void *unused) { scm_with_guile(a_libguile_thread, NULL); } static void do_mallocs(void) { void *a[1000]; for (int i = 0; i < 1000; ++i) { a[i] = malloc(356); } for (int i = 0; i < 1000; ++i) { free(a[i]); } } int main(int argc, char *argv[]) { scm_init_guile(); pthread_t pth[10]; for (int i = 0; i < 10; ++i) { GC_pthread_create(pth + i, NULL, a_libguile_thread_, NULL); } do_mallocs(); for (int i = 0; i < 10; ++i) { GC_pthread_join(pth[i], NULL); } return 0; } ``` To compile: gcc corruption_guile.c -g -std=c99 `pkg-config --cflags --libs guile-2.0` ``` Some iterations are needed before having the segfaults: while ./a.out; do echo -n "."; done; ``` Versions: gcc (Debian 4.9.1-19) 4.9.1 guile (GNU Guile) 2.0.11.20-4338f (also tried from v2.0.11 tag) libgc gc7_2d ``` Backtrace: #0 GC_generic_malloc (lb=524288, k=<optimized out>) at malloc.c:185 #1 0x00007fcc535541ff in make_vm () at vm.c:704 #2 0x00007fcc535542d5 in scm_the_vm () at vm.c:781 #3 0x00007fcc534da600 in scm_call_4 (proc=0x1198c30, arg1=arg1@entry=0x404, arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at eval.c:507 #4 0x00007fcc53550d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, thunk=<optimized out>, handler=<optimized out>, pre_unwind_handler=<optimized out>) at throw.c:73 #5 0x00007fcc53550e8f in scm_c_catch (tag=tag@entry=0x404, body=body@entry=0x7fcc534d0c00 <c_body>, body_data=body_data@entry=0x7fcc4d14cd50, handler=handler@entry=0x7fcc534d0fe0 <c_handler>, handler_data=handler_data@entry=0x7fcc4d14cd50 , pre_unwind_handler=pre_unwind_handler@entry=0x7fcc534d0d90 <pre_unwind_handler>, pre_unwind_handler_data=0x127cff0) at throw.c:207 #6 0x00007fcc534d1381 in scm_i_with_continuation_barrier (body=body@entry=0x7fcc534d0c00 <c_body>, body_data=body_data@entry=0x7fcc4d14cd50, handler=handler@entry=0x7fcc534d0fe0 <c_handler>, handler_data=handler_data@entry=0x7fcc4d14cd50, pre_unwind_handler=pre_unwind_handler@entry=0x7fcc534d0d90 <pre_unwind_handler>, pre_unwind_handler_data=0x127cff0) at continuations.c:455 #7 0x00007fcc534d1415 in scm_c_with_continuation_barrier (func=<optimized out>, data=<optimized out>) at continuations.c:551 #8 0x00007fcc5354e6dc in with_guile_and_parent (base=base@entry=0x7fcc4d14cdb0, data=data@entry=0x7fcc4d14cde0) at threads.c:906 #9 0x00007fcc53222302 in GC_call_with_stack_base (fn=fn@entry=0x7fcc5354e690 <with_guile_and_parent>, arg=arg@entry=0x7fcc4d14cde0) at misc.c:1553 #10 0x00007fcc5354eac8 in scm_i_with_guile_and_parent (parent=<optimized out>, data=<optimized out>, func=<optimized out>) at threads.c:949 #11 scm_with_guile (func=<optimized out>, data=<optimized out>) at threads.c:955 #12 0x00000000004008bb in a_libguile_thread_ (unused=0x0) at corruption_guile.c:11 #13 0x00007fcc53226f6e in GC_inner_start_routine (sb=<error reading variable: value has been optimized out>, arg=<error reading variable: value has been optimized out>) at pthread_start.c:56 #14 0x00007fcc53222302 in GC_call_with_stack_base (fn=<optimized out>, arg=<optimized out>) at misc.c:1553 #15 0x00007fcc52ff40a4 in start_thread (arg=0x7fcc4d14d700) at pthread_create.c:309 #16 0x00007fcc52d28ccd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 ``` I thought at first it was a problem with libgc but the given program run without problems. ``` #include <stdlib.h> #include <pthread.h> #define GC_THREADS 1 #define GC_NO_THREAD_REDIRECTS 1 #include <gc/gc_mark.h> #include <gc.h> static void *a_lib_gc_thread(void *unused) { void *a; for (int i = 0; i < 100; ++i) { a = GC_generic_malloc(524288, 6); } GC_free(a); } static void do_mallocs(void) { void *a[100]; for (int i = 0; i < 100; ++i) { a[i] = malloc(356); } for (int i = 0; i < 100; ++i) { free(a[i]); } } int main(int argc, char *argv[]) { pthread_t pth[10]; for (int i = 0; i < 10; ++i) { GC_pthread_create(pth + i, NULL, a_lib_gc_thread, NULL); } do_mallocs(); for (int i = 0; i < 10; ++i) { GC_pthread_join(pth[i], NULL); } return 0; } ``` I also tried to replace malloc by scm_malloc with no luck. Regards, Anthonin [-- Attachment #2: Type: text/html, Size: 5503 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#19523: Segfault when creating thread with scm_with_guile 2015-01-06 14:27 bug#19523: Segfault when creating thread with scm_with_guile Anthonin Bonnefoy @ 2016-06-22 21:27 ` Andy Wingo 2016-06-23 6:43 ` Anthonin Bonnefoy 2017-02-28 12:16 ` Andy Wingo 2017-02-28 12:18 ` Andy Wingo 2 siblings, 1 reply; 6+ messages in thread From: Andy Wingo @ 2016-06-22 21:27 UTC (permalink / raw) To: Anthonin Bonnefoy; +Cc: 19523 I can reproduce this bug, but I can't get backtraces from my core file :/ Irritating. Are you able to get backtraces reliably? Can you provide a "thr apply all bt" ? Regards, Andy On Tue 06 Jan 2015 15:27, Anthonin Bonnefoy <anthonin.bonnefoy@securactive.net> writes: > Hi all, > > I have segfaults occurring sometimes when threads are starting with > scm_with_guile while main thread is using malloc. > > Example program: > ``` > #include <stdlib.h> > #include <pthread.h> > #include <libguile.h> > > static void *a_libguile_thread(void *unused) { > } > > static void *a_libguile_thread_(void *unused) { > scm_with_guile(a_libguile_thread, NULL); > } > > static void do_mallocs(void) { > void *a[1000]; > for (int i = 0; i < 1000; ++i) { > a[i] = malloc(356); > } > for (int i = 0; i < 1000; ++i) { > free(a[i]); > } > } > > int main(int argc, char *argv[]) { > scm_init_guile(); > > pthread_t pth[10]; > for (int i = 0; i < 10; ++i) { > GC_pthread_create(pth + i, NULL, a_libguile_thread_, NULL); > } > > do_mallocs(); > > for (int i = 0; i < 10; ++i) { > GC_pthread_join(pth[i], NULL); > } > > return 0; > } > > ``` > To compile: > gcc corruption_guile.c -g -std=c99 `pkg-config --cflags --libs > guile-2.0` > ``` > Some iterations are needed before having the segfaults: > while ./a.out; do echo -n "."; done; > ``` > Versions: > gcc (Debian 4.9.1-19) 4.9.1 > guile (GNU Guile) 2.0.11.20-4338f (also tried from v2.0.11 tag) > libgc gc7_2d > ``` > Backtrace: > > #0 GC_generic_malloc (lb=524288, k=<optimized out>) at malloc.c:185 > #1 0x00007fcc535541ff in make_vm () at vm.c:704 > #2 0x00007fcc535542d5 in scm_the_vm () at vm.c:781 > #3 0x00007fcc534da600 in scm_call_4 (proc=0x1198c30, > arg1=arg1@entry=0x404, arg2=<optimized out>, arg3=<optimized out>, > arg4=<optimized out>) at eval.c:507 > #4 0x00007fcc53550d89 in scm_catch_with_pre_unwind_handler > (key=key@entry=0x404, thunk=<optimized out>, handler=<optimized out>, > pre_unwind_handler=<optimized out>) at throw.c:73 > #5 0x00007fcc53550e8f in scm_c_catch (tag=tag@entry=0x404, > body=body@entry=0x7fcc534d0c00 <c_body>, > body_data=body_data@entry=0x7fcc4d14cd50, > handler=handler@entry=0x7fcc534d0fe0 <c_handler>, > handler_data=handler_data@entry=0x7fcc4d14cd50 > , pre_unwind_handler=pre_unwind_handler@entry=0x7fcc534d0d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x127cff0) at > throw.c:207 > #6 0x00007fcc534d1381 in scm_i_with_continuation_barrier > (body=body@entry=0x7fcc534d0c00 <c_body>, > body_data=body_data@entry=0x7fcc4d14cd50, > handler=handler@entry=0x7fcc534d0fe0 <c_handler>, > handler_data=handler_data@entry=0x7fcc4d14cd50, > pre_unwind_handler=pre_unwind_handler@entry=0x7fcc534d0d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x127cff0) at > continuations.c:455 > #7 0x00007fcc534d1415 in scm_c_with_continuation_barrier > (func=<optimized out>, data=<optimized out>) at continuations.c:551 > #8 0x00007fcc5354e6dc in with_guile_and_parent > (base=base@entry=0x7fcc4d14cdb0, data=data@entry=0x7fcc4d14cde0) at > threads.c:906 > #9 0x00007fcc53222302 in GC_call_with_stack_base > (fn=fn@entry=0x7fcc5354e690 <with_guile_and_parent>, > arg=arg@entry=0x7fcc4d14cde0) at misc.c:1553 > #10 0x00007fcc5354eac8 in scm_i_with_guile_and_parent > (parent=<optimized out>, data=<optimized out>, func=<optimized out>) > at threads.c:949 > #11 scm_with_guile (func=<optimized out>, data=<optimized out>) at > threads.c:955 > #12 0x00000000004008bb in a_libguile_thread_ (unused=0x0) at > corruption_guile.c:11 > #13 0x00007fcc53226f6e in GC_inner_start_routine (sb=<error reading > variable: value has been optimized out>, arg=<error reading variable: > value has been optimized out>) at pthread_start.c:56 > #14 0x00007fcc53222302 in GC_call_with_stack_base (fn=<optimized out>, > arg=<optimized out>) at misc.c:1553 > #15 0x00007fcc52ff40a4 in start_thread (arg=0x7fcc4d14d700) at > pthread_create.c:309 > #16 0x00007fcc52d28ccd in clone () at . > ./sysdeps/unix/sysv/linux/x86_64/clone.S:111 > ``` > > I thought at first it was a problem with libgc but the given program > run without problems. > ``` > #include <stdlib.h> > #include <pthread.h> > #define GC_THREADS 1 > #define GC_NO_THREAD_REDIRECTS 1 > #include <gc/gc_mark.h> > #include <gc.h> > > static void *a_lib_gc_thread(void *unused) { > void *a; > for (int i = 0; i < 100; ++i) { > a = GC_generic_malloc(524288, 6); > } > GC_free(a); > } > > static void do_mallocs(void) { > void *a[100]; > for (int i = 0; i < 100; ++i) { > a[i] = malloc(356); > } > for (int i = 0; i < 100; ++i) { > free(a[i]); > } > } > > int main(int argc, char *argv[]) { > pthread_t pth[10]; > for (int i = 0; i < 10; ++i) { > GC_pthread_create(pth + i, NULL, a_lib_gc_thread, NULL); > } > do_mallocs(); > for (int i = 0; i < 10; ++i) { > GC_pthread_join(pth[i], NULL); > } > return 0; > } > ``` > I also tried to replace malloc by scm_malloc with no luck. > > Regards, Anthonin ^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#19523: Segfault when creating thread with scm_with_guile 2016-06-22 21:27 ` Andy Wingo @ 2016-06-23 6:43 ` Anthonin Bonnefoy 2016-06-23 8:19 ` Anthonin Bonnefoy 0 siblings, 1 reply; 6+ messages in thread From: Anthonin Bonnefoy @ 2016-06-23 6:43 UTC (permalink / raw) To: Andy Wingo; +Cc: 19523 [-- Attachment #1: Type: text/plain, Size: 54143 bytes --] I moved guile to 08df681976d6c6d97a659f4aebb6f7125e5aad2e before generating those coredumps. Backtraces are a bit different between executions, so here are two "t a a bt" from two differents coredump. First backtrace: #0 GC_generic_malloc (lb=524288, k=<optimized out>) at malloc.c:185 Thread 12 (Thread 0x7fb4d6055700 (LWP 28923)): #0 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 #1 0x00007fb4d8efa4b9 in _L_lock_909 () from /lib/x86_64-linux-gnu/libpthread.so.0 #2 0x00007fb4d8efa2e0 in __GI___pthread_mutex_lock (mutex=0x7fb4d9348920 <GC_allocate_ml>) at ../nptl/pthread_mutex_lock.c:79 #3 0x00007fb4d912195d in GC_core_malloc (lb=16) at malloc.c:247 #4 0x00007fb4d941c636 in scm_cell (cdr=772, car=9845792) at ../libguile/gc.h:232 #5 scm_cons (x=0x963c20, y=0x304) at pairs.c:78 #6 0x00007fb4d946aed8 in vm_regular_engine (vm=0x7fb4d9348920 <GC_allocate_ml>, program=0x80, argv=0x963c20, nargs=11893760) at vm-i-system.c:1488 #7 0x00007fb4d93de613 in scm_call_4 (proc=0x829c30, arg1=arg1@entry=0x404, arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at eval.c:507 #8 0x00007fb4d9454d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, thunk=<optimized out>, handler=<optimized out>, pre_unwind_handler=<optimized out>) at throw.c:73 #9 0x00007fb4d9454e8f in scm_c_catch (tag=tag@entry=0x404, body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4d6054da0, handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, handler_data=handler_data@entry=0x7fb4d6054da0, pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at throw.c:207 #10 0x00007fb4d93d5381 in scm_i_with_continuation_barrier (body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4d6054da0, handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, handler_data=handler_data@entry=0x7fb4d6054da0, pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at continuations.c:455 #11 0x00007fb4d93d5415 in scm_c_with_continuation_barrier (func=<optimized out>, data=<optimized out>) at continuations.c:551 #12 0x00007fb4d912bb00 in GC_call_with_gc_active (fn=fn@entry=0x7fb4d9452040 <with_guile_trampoline>, client_data=client_data@entry=0x7fb4d6054e70) at pthread_support.c:1180 #13 0x00007fb4d9452721 in with_gc_active (data=0x7fb4d6054e70, func=0x7fb4d9452040 <with_guile_trampoline>) at threads.c:236 #14 with_guile_and_parent (base=base@entry=0x7fb4d6054e40, data=data@entry=0x7fb4d6054e70) at threads.c:934 #15 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452690 <with_guile_and_parent>, arg=arg@entry=0x7fb4d6054e70) at misc.c:1553 #16 0x00007fb4d9452ac8 in scm_i_with_guile_and_parent (parent=<optimized out>, data=<optimized out>, func=<optimized out>) at threads.c:949 #17 scm_with_guile (func=<optimized out>, data=<optimized out>) at threads.c:955 #18 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452ad0 <do_thread_exit_trampoline>, arg=arg@entry=0xb57c00) at misc.c:1553 #19 0x00007fb4d9451aee in on_thread_exit (v=0xb57c00) at threads.c:752 #20 0x00007fb4d8ef7e62 in __nptl_deallocate_tsd () at pthread_create.c:157 #21 0x00007fb4d8ef80b7 in start_thread (arg=0x7fb4d6055700) at pthread_create.c:322 #22 0x00007fb4d8c2d87d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 11 (Thread 0x7fb4d4852700 (LWP 28926)): #0 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 #1 0x00007fb4d8efa4b9 in _L_lock_909 () from /lib/x86_64-linux-gnu/libpthread.so.0 #2 0x00007fb4d8efa2e0 in __GI___pthread_mutex_lock (mutex=0x7fb4d9348920 <GC_allocate_ml>) at ../nptl/pthread_mutex_lock.c:79 #3 0x00007fb4d912195d in GC_core_malloc (lb=64) at malloc.c:247 #4 0x00007fb4d946a51f in scm_words (n_words=<optimized out>, car=<optimized out>) at ../libguile/gc.h:289 #5 vm_regular_engine (vm=0x7fb4d9348920 <GC_allocate_ml>, program=0x80, argv=0x5, nargs=-645099620) at vm-i-system.c:1414 #6 0x00007fb4d93de613 in scm_call_4 (proc=0x829c30, arg1=arg1@entry=0x404, arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at eval.c:507 #7 0x00007fb4d9454d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, thunk=<optimized out>, handler=<optimized out>, pre_unwind_handler=<optimized out>) at throw.c:73 #8 0x00007fb4d9454e8f in scm_c_catch (tag=tag@entry=0x404, body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4d4851da0, handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, handler_data=handler_data@entry=0x7fb4d4851da0, pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at throw.c:207 #9 0x00007fb4d93d5381 in scm_i_with_continuation_barrier (body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4d4851da0, handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, handler_data=handler_data@entry=0x7fb4d4851da0, pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at continuations.c:455 #10 0x00007fb4d93d5415 in scm_c_with_continuation_barrier (func=<optimized out>, data=<optimized out>) at continuations.c:551 #11 0x00007fb4d912bb00 in GC_call_with_gc_active (fn=fn@entry=0x7fb4d9452040 <with_guile_trampoline>, client_data=client_data@entry=0x7fb4d4851e70) at pthread_support.c:1180 #12 0x00007fb4d9452721 in with_gc_active (data=0x7fb4d4851e70, func=0x7fb4d9452040 <with_guile_trampoline>) at threads.c:236 #13 with_guile_and_parent (base=base@entry=0x7fb4d4851e40, data=data@entry=0x7fb4d4851e70) at threads.c:934 #14 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452690 <with_guile_and_parent>, arg=arg@entry=0x7fb4d4851e70) at misc.c:1553 #15 0x00007fb4d9452ac8 in scm_i_with_guile_and_parent (parent=<optimized out>, data=<optimized out>, func=<optimized out>) at threads.c:949 #16 scm_with_guile (func=<optimized out>, data=<optimized out>) at threads.c:955 #17 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452ad0 <do_thread_exit_trampoline>, arg=arg@entry=0xa10e00) at misc.c:1553 #18 0x00007fb4d9451aee in on_thread_exit (v=0xa10e00) at threads.c:752 #19 0x00007fb4d8ef7e62 in __nptl_deallocate_tsd () at pthread_create.c:157 #20 0x00007fb4d8ef80b7 in start_thread (arg=0x7fb4d4852700) at pthread_create.c:322 #21 0x00007fb4d8c2d87d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 10 (Thread 0x7fb4cf7fe700 (LWP 28929)): #0 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 #1 0x00007fb4d8efa4b9 in _L_lock_909 () from /lib/x86_64-linux-gnu/libpthread.so.0 #2 0x00007fb4d8efa2e0 in __GI___pthread_mutex_lock (mutex=0x7fb4d9348920 <GC_allocate_ml>) at ../nptl/pthread_mutex_lock.c:79 #3 0x00007fb4d912195d in GC_core_malloc (lb=16) at malloc.c:247 #4 0x00007fb4d9458292 in scm_cell (cdr=10465024, car=55) at ../libguile/gc.h:232 #5 make_vm () at vm.c:728 #6 0x00007fb4d94582d5 in scm_the_vm () at vm.c:781 #7 0x00007fb4d93de600 in scm_call_4 (proc=0x829c30, arg1=arg1@entry=0x404, arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at eval.c:507 #8 0x00007fb4d9454d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, thunk=<optimized out>, handler=<optimized out>, pre_unwind_handler=<optimized out>) at throw.c:73 #9 0x00007fb4d9454e8f in scm_c_catch (tag=tag@entry=0x404, body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4cf7fdd50, handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, handler_data=handler_data@entry=0x7fb4cf7fdd50, pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at throw.c:207 #10 0x00007fb4d93d5381 in scm_i_with_continuation_barrier (body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4cf7fdd50, handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, handler_data=handler_data@entry=0x7fb4cf7fdd50, pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at continuations.c:455 #11 0x00007fb4d93d5415 in scm_c_with_continuation_barrier (func=<optimized out>, data=<optimized out>) at continuations.c:551 #12 0x00007fb4d94526dc in with_guile_and_parent (base=base@entry=0x7fb4cf7fddb0, data=data@entry=0x7fb4cf7fdde0) at threads.c:906 #13 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452690 <with_guile_and_parent>, arg=arg@entry=0x7fb4cf7fdde0) at misc.c:1553 #14 0x00007fb4d9452ac8 in scm_i_with_guile_and_parent (parent=<optimized out>, data=<optimized out>, func=<optimized out>) at threads.c:949 #15 scm_with_guile (func=<optimized out>, data=<optimized out>) at threads.c:955 #16 0x00000000004008bb in a_libguile_thread_ (unused=0x0) at corruption_guile.c:9 #17 0x00007fb4d912af6e in GC_inner_start_routine (sb=<error reading variable: value has been optimized out>, arg=<error reading variable: value has been optimized out>) at pthread_start.c:56 #18 0x00007fb4d9126302 in GC_call_with_stack_base (fn=<optimized out>, arg=<optimized out>) at misc.c:1553 #19 0x00007fb4d8ef80a4 in start_thread (arg=0x7fb4cf7fe700) at pthread_create.c:309 #20 0x00007fb4d8c2d87d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 9 (Thread 0x7fb4d5053700 (LWP 28925)): #0 pthread_once () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S:94 #1 0x00007fb4d94309b3 in scm_i_ensure_signal_delivery_thread () at scmsigs.c:211 #2 0x00007fb4d9452d50 in do_thread_exit (v=0x815400) at threads.c:669 #3 0x00007fb4d93d4c0a in c_body (d=0x7fb4d5052da0) at continuations.c:517 #4 0x00007fb4d946f752 in vm_regular_engine (vm=0x7fb4d96ff3c8 <once>, program=0x80, argv=0xcda0b8, nargs=-649913776) at vm-i-system.c:858 #5 0x00007fb4d93de613 in scm_call_4 (proc=0x829c30, arg1=arg1@entry=0x404, arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at eval.c:507 #6 0x00007fb4d9454d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, thunk=<optimized out>, handler=<optimized out>, pre_unwind_handler=<optimized out>) at throw.c:73 #7 0x00007fb4d9454e8f in scm_c_catch (tag=tag@entry=0x404, body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4d5052da0, handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, handler_data=handler_data@entry=0x7fb4d5052da0, pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at throw.c:207 #8 0x00007fb4d93d5381 in scm_i_with_continuation_barrier (body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4d5052da0, handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, handler_data=handler_data@entry=0x7fb4d5052da0, pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at continuations.c:455 #9 0x00007fb4d93d5415 in scm_c_with_continuation_barrier (func=<optimized out>, data=<optimized out>) at continuations.c:551 #10 0x00007fb4d912bb00 in GC_call_with_gc_active (fn=fn@entry=0x7fb4d9452040 <with_guile_trampoline>, client_data=client_data@entry=0x7fb4d5052e70) at pthread_support.c:1180 #11 0x00007fb4d9452721 in with_gc_active (data=0x7fb4d5052e70, func=0x7fb4d9452040 <with_guile_trampoline>) at threads.c:236 #12 with_guile_and_parent (base=base@entry=0x7fb4d5052e40, data=data@entry=0x7fb4d5052e70) at threads.c:934 #13 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452690 <with_guile_and_parent>, arg=arg@entry=0x7fb4d5052e70) at misc.c:1553 #14 0x00007fb4d9452ac8 in scm_i_with_guile_and_parent (parent=<optimized out>, data=<optimized out>, func=<optimized out>) at threads.c:949 #15 scm_with_guile (func=<optimized out>, data=<optimized out>) at threads.c:955 #16 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452ad0 <do_thread_exit_trampoline>, arg=arg@entry=0x815400) at misc.c:1553 #17 0x00007fb4d9451aee in on_thread_exit (v=0x815400) at threads.c:752 #18 0x00007fb4d8ef7e62 in __nptl_deallocate_tsd () at pthread_create.c:157 #19 0x00007fb4d8ef80b7 in start_thread (arg=0x7fb4d5053700) at pthread_create.c:322 #20 0x00007fb4d8c2d87d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 8 (Thread 0x7fb4c7fff700 (LWP 28927)): #0 memset () at ../sysdeps/x86_64/memset.S:93 #1 0x00007fb4d91216a0 in GC_generic_malloc (lb=524288, k=<optimized out>) at malloc.c:193 #2 0x00007fb4d94581ff in make_vm () at vm.c:704 #3 0x00007fb4d94582d5 in scm_the_vm () at vm.c:781 #4 0x00007fb4d93de600 in scm_call_4 (proc=0x829c30, arg1=arg1@entry=0x404, arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at eval.c:507 #5 0x00007fb4d9454d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, thunk=<optimized out>, handler=<optimized out>, pre_unwind_handler=<optimized out>) at throw.c:73 #6 0x00007fb4d9454e8f in scm_c_catch (tag=tag@entry=0x404, body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4c7ffed50, handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, handler_data=handler_data@entry=0x7fb4c7ffed50, pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at throw.c:207 #7 0x00007fb4d93d5381 in scm_i_with_continuation_barrier (body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4c7ffed50, handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, handler_data=handler_data@entry=0x7fb4c7ffed50, pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at continuations.c:455 #8 0x00007fb4d93d5415 in scm_c_with_continuation_barrier (func=<optimized out>, data=<optimized out>) at continuations.c:551 #9 0x00007fb4d94526dc in with_guile_and_parent (base=base@entry=0x7fb4c7ffedb0, data=data@entry=0x7fb4c7ffede0) at threads.c:906 #10 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452690 <with_guile_and_parent>, arg=arg@entry=0x7fb4c7ffede0) at misc.c:1553 #11 0x00007fb4d9452ac8 in scm_i_with_guile_and_parent (parent=<optimized out>, data=<optimized out>, func=<optimized out>) at threads.c:949 #12 scm_with_guile (func=<optimized out>, data=<optimized out>) at threads.c:955 #13 0x00000000004008bb in a_libguile_thread_ (unused=0x0) at corruption_guile.c:9 #14 0x00007fb4d912af6e in GC_inner_start_routine (sb=<error reading variable: value has been optimized out>, arg=<error reading variable: value has been optimized out>) at pthread_start.c:56 #15 0x00007fb4d9126302 in GC_call_with_stack_base (fn=<optimized out>, arg=<optimized out>) at misc.c:1553 #16 0x00007fb4d8ef80a4 in start_thread (arg=0x7fb4c7fff700) at pthread_create.c:309 #17 0x00007fb4d8c2d87d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 7 (Thread 0x7fb4d6856700 (LWP 28922)): #0 pthread_cond_wait@@GLIBC_2.3.2 () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 #1 0x00007fb4d945308c in scm_pthread_cond_wait (cond=cond@entry=0x7fb4d6855a88, mutex=mutex@entry=0x7fb4d6855a60) at threads.c:1980 #2 0x00007fb4d945327b in scm_spawn_thread (body=body@entry=0x7fb4d9430150 <signal_delivery_thread>, body_data=body_data@entry=0x0, handler=<optimized out>, handler_data=handler_data@entry=0x7fb4d9499ea8) at threads.c:1141 #3 0x00007fb4d9430121 in start_signal_delivery_thread () at scmsigs.c:199 #4 0x00007fb4d8efd450 in pthread_once () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S:103 #5 0x00007fb4d94309b3 in scm_i_ensure_signal_delivery_thread () at scmsigs.c:211 #6 0x00007fb4d9452d50 in do_thread_exit (v=0xb57e00) at threads.c:669 #7 0x00007fb4d93d4c0a in c_body (d=0x7fb4d6855da0) at continuations.c:517 #8 0x00007fb4d946f752 in vm_regular_engine (vm=0x7fb4d6855a8c, program=0x80, argv=0xb580b8, nargs=-649913776) at vm-i-system.c:858 #9 0x00007fb4d93de613 in scm_call_4 (proc=0x829c30, arg1=arg1@entry=0x404, arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at eval.c:507 #10 0x00007fb4d9454d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, thunk=<optimized out>, handler=<optimized out>, pre_unwind_handler=<optimized out>) at throw.c:73 #11 0x00007fb4d9454e8f in scm_c_catch (tag=tag@entry=0x404, body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4d6855da0, handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, handler_data=handler_data@entry=0x7fb4d6855da0, pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at throw.c:207 #12 0x00007fb4d93d5381 in scm_i_with_continuation_barrier (body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4d6855da0, handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, handler_data=handler_data@entry=0x7fb4d6855da0, pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at continuations.c:455 #13 0x00007fb4d93d5415 in scm_c_with_continuation_barrier (func=<optimized out>, data=<optimized out>) at continuations.c:551 #14 0x00007fb4d912bb00 in GC_call_with_gc_active (fn=fn@entry=0x7fb4d9452040 <with_guile_trampoline>, client_data=client_data@entry=0x7fb4d6855e70) at pthread_support.c:1180 #15 0x00007fb4d9452721 in with_gc_active (data=0x7fb4d6855e70, func=0x7fb4d9452040 <with_guile_trampoline>) at threads.c:236 #16 with_guile_and_parent (base=base@entry=0x7fb4d6855e40, data=data@entry=0x7fb4d6855e70) at threads.c:934 #17 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452690 <with_guile_and_parent>, arg=arg@entry=0x7fb4d6855e70) at misc.c:1553 #18 0x00007fb4d9452ac8 in scm_i_with_guile_and_parent (parent=<optimized out>, data=<optimized out>, func=<optimized out>) at threads.c:949 #19 scm_with_guile (func=<optimized out>, data=<optimized out>) at threads.c:955 #20 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452ad0 <do_thread_exit_trampoline>, arg=arg@entry=0xb57e00) at misc.c:1553 #21 0x00007fb4d9451aee in on_thread_exit (v=0xb57e00) at threads.c:752 #22 0x00007fb4d8ef7e62 in __nptl_deallocate_tsd () at pthread_create.c:157 #23 0x00007fb4d8ef80b7 in start_thread (arg=0x7fb4d6856700) at pthread_create.c:322 #24 0x00007fb4d8c2d87d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 6 (Thread 0x7fb4cffff700 (LWP 28928)): #0 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 #1 0x00007fb4d8efa4b9 in _L_lock_909 () from /lib/x86_64-linux-gnu/libpthread.so.0 #2 0x00007fb4d8efa2e0 in __GI___pthread_mutex_lock (mutex=0x7fb4d9348920 <GC_allocate_ml>) at ../nptl/pthread_mutex_lock.c:79 #3 0x00007fb4d912195d in GC_core_malloc (lb=16) at malloc.c:247 #4 0x00007fb4d9458292 in scm_cell (cdr=8954240, car=55) at ../libguile/gc.h:232 #5 make_vm () at vm.c:728 #6 0x00007fb4d94582d5 in scm_the_vm () at vm.c:781 #7 0x00007fb4d93de600 in scm_call_4 (proc=0x829c30, arg1=arg1@entry=0x404, arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at eval.c:507 #8 0x00007fb4d9454d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, thunk=<optimized out>, handler=<optimized out>, pre_unwind_handler=<optimized out>) at throw.c:73 #9 0x00007fb4d9454e8f in scm_c_catch (tag=tag@entry=0x404, body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4cfffed70, handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, handler_data=handler_data@entry=0x7fb4cfffed70, pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at throw.c:207 #10 0x00007fb4d93d5381 in scm_i_with_continuation_barrier (body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4cfffed70, handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, handler_data=handler_data@entry=0x7fb4cfffed70, pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at continuations.c:455 #11 0x00007fb4d93d5415 in scm_c_with_continuation_barrier (func=<optimized out>, data=<optimized out>) at continuations.c:551 #12 0x00007fb4d94526dc in with_guile_and_parent (base=base@entry=0x7fb4cfffedd0, data=data@entry=0x7fb4cfffee00) at threads.c:906 #13 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452690 <with_guile_and_parent>, arg=arg@entry=0x7fb4cfffee00) at misc.c:1553 #14 0x00007fb4d94520dc in scm_i_with_guile_and_parent (parent=<optimized out>, data=0x7fb4d6855a30, func=0x7fb4d9452f10 <really_spawn>) at threads.c:949 #15 spawn_thread (d=0x7fb4d6855a30) at threads.c:1110 #16 0x00007fb4d912af6e in GC_inner_start_routine (sb=<error reading variable: value has been optimized out>, arg=<error reading variable: value has been optimized out>) at pthread_start.c:56 #17 0x00007fb4d9126302 in GC_call_with_stack_base (fn=<optimized out>, arg=<optimized out>) at misc.c:1553 #18 0x00007fb4d8ef80a4 in start_thread (arg=0x7fb4cffff700) at pthread_create.c:309 #19 0x00007fb4d8c2d87d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 5 (Thread 0x7fb4d5854700 (LWP 28924)): #0 pthread_once () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S:94 #1 0x00007fb4d94309b3 in scm_i_ensure_signal_delivery_thread () at scmsigs.c:211 #2 0x00007fb4d9452d50 in do_thread_exit (v=0x815600) at threads.c:669 #3 0x00007fb4d93d4c0a in c_body (d=0x7fb4d5853da0) at continuations.c:517 #4 0x00007fb4d946f752 in vm_regular_engine (vm=0x7fb4d96ff3c8 <once>, program=0x80, argv=0xc5a0b8, nargs=-649913776) at vm-i-system.c:858 #5 0x00007fb4d93de613 in scm_call_4 (proc=0x829c30, arg1=arg1@entry=0x404, arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at eval.c:507 #6 0x00007fb4d9454d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, thunk=<optimized out>, handler=<optimized out>, pre_unwind_handler=<optimized out>) at throw.c:73 #7 0x00007fb4d9454e8f in scm_c_catch (tag=tag@entry=0x404, body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4d5853da0, handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, handler_data=handler_data@entry=0x7fb4d5853da0, pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at throw.c:207 #8 0x00007fb4d93d5381 in scm_i_with_continuation_barrier (body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4d5853da0, handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, handler_data=handler_data@entry=0x7fb4d5853da0, pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at continuations.c:455 #9 0x00007fb4d93d5415 in scm_c_with_continuation_barrier (func=<optimized out>, data=<optimized out>) at continuations.c:551 #10 0x00007fb4d912bb00 in GC_call_with_gc_active (fn=fn@entry=0x7fb4d9452040 <with_guile_trampoline>, client_data=client_data@entry=0x7fb4d5853e70) at pthread_support.c:1180 #11 0x00007fb4d9452721 in with_gc_active (data=0x7fb4d5853e70, func=0x7fb4d9452040 <with_guile_trampoline>) at threads.c:236 #12 with_guile_and_parent (base=base@entry=0x7fb4d5853e40, data=data@entry=0x7fb4d5853e70) at threads.c:934 #13 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452690 <with_guile_and_parent>, arg=arg@entry=0x7fb4d5853e70) at misc.c:1553 #14 0x00007fb4d9452ac8 in scm_i_with_guile_and_parent (parent=<optimized out>, data=<optimized out>, func=<optimized out>) at threads.c:949 #15 scm_with_guile (func=<optimized out>, data=<optimized out>) at threads.c:955 #16 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452ad0 <do_thread_exit_trampoline>, arg=arg@entry=0x815600) at misc.c:1553 #17 0x00007fb4d9451aee in on_thread_exit (v=0x815600) at threads.c:752 #18 0x00007fb4d8ef7e62 in __nptl_deallocate_tsd () at pthread_create.c:157 #19 0x00007fb4d8ef80b7 in start_thread (arg=0x7fb4d5854700) at pthread_create.c:322 #20 0x00007fb4d8c2d87d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 4 (Thread 0x7fb4d7057700 (LWP 28921)): #0 pthread_once () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S:94 #1 0x00007fb4d94309b3 in scm_i_ensure_signal_delivery_thread () at scmsigs.c:211 #2 0x00007fb4d9452d50 in do_thread_exit (v=0xa10000) at threads.c:669 #3 0x00007fb4d93d4c0a in c_body (d=0x7fb4d7056da0) at continuations.c:517 #4 0x00007fb4d946f752 in vm_regular_engine (vm=0x7fb4d96ff3c8 <once>, program=0x80, argv=0xad70b8, nargs=-649913776) at vm-i-system.c:858 #5 0x00007fb4d93de613 in scm_call_4 (proc=0x829c30, arg1=arg1@entry=0x404, arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at eval.c:507 #6 0x00007fb4d9454d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, thunk=<optimized out>, handler=<optimized out>, pre_unwind_handler=<optimized out>) at throw.c:73 #7 0x00007fb4d9454e8f in scm_c_catch (tag=tag@entry=0x404, body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4d7056da0, handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, handler_data=handler_data@entry=0x7fb4d7056da0, pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at throw.c:207 #8 0x00007fb4d93d5381 in scm_i_with_continuation_barrier (body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4d7056da0, handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, handler_data=handler_data@entry=0x7fb4d7056da0, pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at continuations.c:455 #9 0x00007fb4d93d5415 in scm_c_with_continuation_barrier (func=<optimized out>, data=<optimized out>) at continuations.c:551 #10 0x00007fb4d912bb00 in GC_call_with_gc_active (fn=fn@entry=0x7fb4d9452040 <with_guile_trampoline>, client_data=client_data@entry=0x7fb4d7056e70) at pthread_support.c:1180 #11 0x00007fb4d9452721 in with_gc_active (data=0x7fb4d7056e70, func=0x7fb4d9452040 <with_guile_trampoline>) at threads.c:236 #12 with_guile_and_parent (base=base@entry=0x7fb4d7056e40, data=data@entry=0x7fb4d7056e70) at threads.c:934 #13 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452690 <with_guile_and_parent>, arg=arg@entry=0x7fb4d7056e70) at misc.c:1553 #14 0x00007fb4d9452ac8 in scm_i_with_guile_and_parent (parent=<optimized out>, data=<optimized out>, func=<optimized out>) at threads.c:949 #15 scm_with_guile (func=<optimized out>, data=<optimized out>) at threads.c:955 #16 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452ad0 <do_thread_exit_trampoline>, arg=arg@entry=0xa10000) at misc.c:1553 #17 0x00007fb4d9451aee in on_thread_exit (v=0xa10000) at threads.c:752 #18 0x00007fb4d8ef7e62 in __nptl_deallocate_tsd () at pthread_create.c:157 #19 0x00007fb4d8ef80b7 in start_thread (arg=0x7fb4d7057700) at pthread_create.c:322 #20 0x00007fb4d8c2d87d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 3 (Thread 0x7fb4d98fa740 (LWP 28919)): #0 0x00007fb4d8bbe5d6 in _int_free (av=<optimized out>, p=<optimized out>, have_lock=0) at malloc.c:4077 #1 0x0000000000400916 in do_mallocs () at corruption_guile.c:18 #2 0x000000000040097c in main (argc=1, argv=0x7ffef9d57398) at corruption_guile.c:30 Thread 2 (Thread 0x7fb4d7858700 (LWP 28920)): #0 pthread_once () at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S:94 #1 0x00007fb4d94309b3 in scm_i_ensure_signal_delivery_thread () at scmsigs.c:211 #2 0x00007fb4d9452d50 in do_thread_exit (v=0xa10200) at threads.c:669 #3 0x00007fb4d93d4c0a in c_body (d=0x7fb4d7857da0) at continuations.c:517 #4 0x00007fb4d946f752 in vm_regular_engine (vm=0x7fb4d96ff3c8 <once>, program=0x80, argv=0xa570b8, nargs=-649913776) at vm-i-system.c:858 #5 0x00007fb4d93de613 in scm_call_4 (proc=0x829c30, arg1=arg1@entry=0x404, arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at eval.c:507 #6 0x00007fb4d9454d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, thunk=<optimized out>, handler=<optimized out>, pre_unwind_handler=<optimized out>) at throw.c:73 #7 0x00007fb4d9454e8f in scm_c_catch (tag=tag@entry=0x404, body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4d7857da0, handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, handler_data=handler_data@entry=0x7fb4d7857da0, pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at throw.c:207 #8 0x00007fb4d93d5381 in scm_i_with_continuation_barrier (body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4d7857da0, handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, handler_data=handler_data@entry=0x7fb4d7857da0, pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at continuations.c:455 #9 0x00007fb4d93d5415 in scm_c_with_continuation_barrier (func=<optimized out>, data=<optimized out>) at continuations.c:551 #10 0x00007fb4d912bb00 in GC_call_with_gc_active (fn=fn@entry=0x7fb4d9452040 <with_guile_trampoline>, client_data=client_data@entry=0x7fb4d7857e70) at pthread_support.c:1180 #11 0x00007fb4d9452721 in with_gc_active (data=0x7fb4d7857e70, func=0x7fb4d9452040 <with_guile_trampoline>) at threads.c:236 #12 with_guile_and_parent (base=base@entry=0x7fb4d7857e40, data=data@entry=0x7fb4d7857e70) at threads.c:934 #13 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452690 <with_guile_and_parent>, arg=arg@entry=0x7fb4d7857e70) at misc.c:1553 #14 0x00007fb4d9452ac8 in scm_i_with_guile_and_parent (parent=<optimized out>, data=<optimized out>, func=<optimized out>) at threads.c:949 #15 scm_with_guile (func=<optimized out>, data=<optimized out>) at threads.c:955 #16 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452ad0 <do_thread_exit_trampoline>, arg=arg@entry=0xa10200) at misc.c:1553 #17 0x00007fb4d9451aee in on_thread_exit (v=0xa10200) at threads.c:752 #18 0x00007fb4d8ef7e62 in __nptl_deallocate_tsd () at pthread_create.c:157 #19 0x00007fb4d8ef80b7 in start_thread (arg=0x7fb4d7858700) at pthread_create.c:322 #20 0x00007fb4d8c2d87d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 1 (Thread 0x7fb4ceffd700 (LWP 28930)): #0 GC_generic_malloc (lb=524288, k=<optimized out>) at malloc.c:185 #1 0x00007fb4d94581ff in make_vm () at vm.c:704 #2 0x00007fb4d94582d5 in scm_the_vm () at vm.c:781 #3 0x00007fb4d93de600 in scm_call_4 (proc=0x829c30, arg1=arg1@entry=0x404, arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at eval.c:507 #4 0x00007fb4d9454d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, thunk=<optimized out>, handler=<optimized out>, pre_unwind_handler=<optimized out>) at throw.c:73 #5 0x00007fb4d9454e8f in scm_c_catch (tag=tag@entry=0x404, body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4ceffcd50, handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, handler_data=handler_data@entry=0x7fb4ceffcd50, pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at throw.c:207 #6 0x00007fb4d93d5381 in scm_i_with_continuation_barrier (body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4ceffcd50, handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, handler_data=handler_data@entry=0x7fb4ceffcd50, pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at continuations.c:455 #7 0x00007fb4d93d5415 in scm_c_with_continuation_barrier (func=<optimized out>, data=<optimized out>) at continuations.c:551 #8 0x00007fb4d94526dc in with_guile_and_parent (base=base@entry=0x7fb4ceffcdb0, data=data@entry=0x7fb4ceffcde0) at threads.c:906 #9 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452690 <with_guile_and_parent>, arg=arg@entry=0x7fb4ceffcde0) at misc.c:1553 #10 0x00007fb4d9452ac8 in scm_i_with_guile_and_parent (parent=<optimized out>, data=<optimized out>, func=<optimized out>) at threads.c:949 #11 scm_with_guile (func=<optimized out>, data=<optimized out>) at threads.c:955 #12 0x00000000004008bb in a_libguile_thread_ (unused=0x0) at corruption_guile.c:9 #13 0x00007fb4d912af6e in GC_inner_start_routine (sb=<error reading variable: value has been optimized out>, arg=<error reading variable: value has been optimized out>) at pthread_start.c:56 #14 0x00007fb4d9126302 in GC_call_with_stack_base (fn=<optimized out>, arg=<optimized out>) at misc.c:1553 #15 0x00007fb4d8ef80a4 in start_thread (arg=0x7fb4ceffd700) at pthread_create.c:309 #16 0x00007fb4d8c2d87d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Second backtrace: Thread 6 (Thread 0x7f3b45281700 (LWP 30465)): #0 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 #1 0x00007f3b4a92b4b9 in _L_lock_909 () from /lib/x86_64-linux-gnu/libpthread.so.0 #2 0x00007f3b4a92b2e0 in __GI___pthread_mutex_lock (mutex=0x7f3b4ad79920 <GC_allocate_ml>) at ../nptl/pthread_mutex_lock.c:79 #3 0x00007f3b4ab5295d in GC_core_malloc (lb=16) at malloc.c:247 #4 0x00007f3b4ae89292 in scm_cell (cdr=32661376, car=55) at ../libguile/gc.h:232 #5 make_vm () at vm.c:728 #6 0x00007f3b4ae892d5 in scm_the_vm () at vm.c:781 #7 0x00007f3b4ae0f600 in scm_call_4 (proc=0x1d54c30, arg1=arg1@entry=0x404, arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at eval.c:507 #8 0x00007f3b4ae85d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, thunk=<optimized out>, handler=<optimized out>, pre_unwind_handler=<optimized out>) at throw.c:73 #9 0x00007f3b4ae85e8f in scm_c_catch (tag=tag@entry=0x404, body=body@entry=0x7f3b4ae05c00 <c_body>, body_data=body_data@entry=0x7f3b45280d50, handler=handler@entry=0x7f3b4ae05fe0 <c_handler>, handler_data=handler_data@entry=0x7f3b45280d50, pre_unwind_handler=pre_unwind_handler@entry=0x7f3b4ae05d90 <pre_unwind_handler>, pre_unwind_handler_data=0x1e38ff0) at throw.c:207 #10 0x00007f3b4ae06381 in scm_i_with_continuation_barrier (body=body@entry=0x7f3b4ae05c00 <c_body>, body_data=body_data@entry=0x7f3b45280d50, handler=handler@entry=0x7f3b4ae05fe0 <c_handler>, handler_data=handler_data@entry=0x7f3b45280d50, pre_unwind_handler=pre_unwind_handler@entry=0x7f3b4ae05d90 <pre_unwind_handler>, pre_unwind_handler_data=0x1e38ff0) at continuations.c:455 #11 0x00007f3b4ae06415 in scm_c_with_continuation_barrier (func=<optimized out>, data=<optimized out>) at continuations.c:551 #12 0x00007f3b4ae836dc in with_guile_and_parent (base=base@entry=0x7f3b45280db0, data=data@entry=0x7f3b45280de0) at threads.c:906 #13 0x00007f3b4ab57302 in GC_call_with_stack_base (fn=fn@entry=0x7f3b4ae83690 <with_guile_and_parent>, arg=arg@entry=0x7f3b45280de0) at misc.c:1553 #14 0x00007f3b4ae83ac8 in scm_i_with_guile_and_parent (parent=<optimized out>, data=<optimized out>, func=<optimized out>) at threads.c:949 #15 scm_with_guile (func=<optimized out>, data=<optimized out>) at threads.c:955 #16 0x00000000004008bb in a_libguile_thread_ (unused=0x0) at corruption_guile.c:9 #17 0x00007f3b4ab5bf6e in GC_inner_start_routine (sb=<error reading variable: value has been optimized out>, arg=<error reading variable: value has been optimized out>) at pthread_start.c:56 #18 0x00007f3b4ab57302 in GC_call_with_stack_base (fn=<optimized out>, arg=<optimized out>) at misc.c:1553 #19 0x00007f3b4a9290a4 in start_thread (arg=0x7f3b45281700) at pthread_create.c:309 #20 0x00007f3b4a65e87d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 5 (Thread 0x7f3b45a82700 (LWP 30463)): #0 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 #1 0x00007f3b4a92b4b9 in _L_lock_909 () from /lib/x86_64-linux-gnu/libpthread.so.0 #2 0x00007f3b4a92b2e0 in __GI___pthread_mutex_lock (mutex=0x7f3b4ad79920 <GC_allocate_ml>) at ../nptl/pthread_mutex_lock.c:79 #3 0x00007f3b4ab5295d in GC_core_malloc (lb=16) at malloc.c:247 #4 0x00007f3b4ae89292 in scm_cell (cdr=31150464, car=55) at ../libguile/gc.h:232 #5 make_vm () at vm.c:728 #6 0x00007f3b4ae892d5 in scm_the_vm () at vm.c:781 #7 0x00007f3b4ae0f600 in scm_call_4 (proc=0x1d54c30, arg1=arg1@entry=0x404, arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at eval.c:507 #8 0x00007f3b4ae85d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, thunk=<optimized out>, handler=<optimized out>, pre_unwind_handler=<optimized out>) at throw.c:73 #9 0x00007f3b4ae85e8f in scm_c_catch (tag=tag@entry=0x404, body=body@entry=0x7f3b4ae05c00 <c_body>, body_data=body_data@entry=0x7f3b45a81d50, handler=handler@entry=0x7f3b4ae05fe0 <c_handler>, handler_data=handler_data@entry=0x7f3b45a81d50, pre_unwind_handler=pre_unwind_handler@entry=0x7f3b4ae05d90 <pre_unwind_handler>, pre_unwind_handler_data=0x1e38ff0) at throw.c:207 #10 0x00007f3b4ae06381 in scm_i_with_continuation_barrier (body=body@entry=0x7f3b4ae05c00 <c_body>, body_data=body_data@entry=0x7f3b45a81d50, handler=handler@entry=0x7f3b4ae05fe0 <c_handler>, handler_data=handler_data@entry=0x7f3b45a81d50, pre_unwind_handler=pre_unwind_handler@entry=0x7f3b4ae05d90 <pre_unwind_handler>, pre_unwind_handler_data=0x1e38ff0) at continuations.c:455 #11 0x00007f3b4ae06415 in scm_c_with_continuation_barrier (func=<optimized out>, data=<optimized out>) at continuations.c:551 #12 0x00007f3b4ae836dc in with_guile_and_parent (base=base@entry=0x7f3b45a81db0, data=data@entry=0x7f3b45a81de0) at threads.c:906 #13 0x00007f3b4ab57302 in GC_call_with_stack_base (fn=fn@entry=0x7f3b4ae83690 <with_guile_and_parent>, arg=arg@entry=0x7f3b45a81de0) at misc.c:1553 #14 0x00007f3b4ae83ac8 in scm_i_with_guile_and_parent (parent=<optimized out>, data=<optimized out>, func=<optimized out>) at threads.c:949 #15 scm_with_guile (func=<optimized out>, data=<optimized out>) at threads.c:955 #16 0x00000000004008bb in a_libguile_thread_ (unused=0x0) at corruption_guile.c:9 #17 0x00007f3b4ab5bf6e in GC_inner_start_routine (sb=<error reading variable: value has been optimized out>, arg=<error reading variable: value has been optimized out>) at pthread_start.c:56 #18 0x00007f3b4ab57302 in GC_call_with_stack_base (fn=<optimized out>, arg=<optimized out>) at misc.c:1553 #19 0x00007f3b4a9290a4 in start_thread (arg=0x7f3b45a82700) at pthread_create.c:309 #20 0x00007f3b4a65e87d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 4 (Thread 0x7f3b44a80700 (LWP 30466)): #0 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 #1 0x00007f3b4a92b4b9 in _L_lock_909 () from /lib/x86_64-linux-gnu/libpthread.so.0 #2 0x00007f3b4a92b2e0 in __GI___pthread_mutex_lock (mutex=0x7f3b4ad79920 <GC_allocate_ml>) at ../nptl/pthread_mutex_lock.c:79 #3 0x00007f3b4ab5295d in GC_core_malloc (lb=16) at malloc.c:247 #4 0x00007f3b4ae89292 in scm_cell (cdr=32661248, car=55) at ../libguile/gc.h:232 #5 make_vm () at vm.c:728 #6 0x00007f3b4ae892d5 in scm_the_vm () at vm.c:781 #7 0x00007f3b4ae0f600 in scm_call_4 (proc=0x1d54c30, arg1=arg1@entry=0x404, arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at eval.c:507 #8 0x00007f3b4ae85d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, thunk=<optimized out>, handler=<optimized out>, pre_unwind_handler=<optimized out>) at throw.c:73 #9 0x00007f3b4ae85e8f in scm_c_catch (tag=tag@entry=0x404, body=body@entry=0x7f3b4ae05c00 <c_body>, body_data=body_data@entry=0x7f3b44a7fd50, handler=handler@entry=0x7f3b4ae05fe0 <c_handler>, handler_data=handler_data@entry=0x7f3b44a7fd50, pre_unwind_handler=pre_unwind_handler@entry=0x7f3b4ae05d90 <pre_unwind_handler>, pre_unwind_handler_data=0x1e38ff0) at throw.c:207 #10 0x00007f3b4ae06381 in scm_i_with_continuation_barrier (body=body@entry=0x7f3b4ae05c00 <c_body>, body_data=body_data@entry=0x7f3b44a7fd50, handler=handler@entry=0x7f3b4ae05fe0 <c_handler>, handler_data=handler_data@entry=0x7f3b44a7fd50, pre_unwind_handler=pre_unwind_handler@entry=0x7f3b4ae05d90 <pre_unwind_handler>, pre_unwind_handler_data=0x1e38ff0) at continuations.c:455 #11 0x00007f3b4ae06415 in scm_c_with_continuation_barrier (func=<optimized out>, data=<optimized out>) at continuations.c:551 #12 0x00007f3b4ae836dc in with_guile_and_parent (base=base@entry=0x7f3b44a7fdb0, data=data@entry=0x7f3b44a7fde0) at threads.c:906 #13 0x00007f3b4ab57302 in GC_call_with_stack_base (fn=fn@entry=0x7f3b4ae83690 <with_guile_and_parent>, arg=arg@entry=0x7f3b44a7fde0) at misc.c:1553 #14 0x00007f3b4ae83ac8 in scm_i_with_guile_and_parent (parent=<optimized out>, data=<optimized out>, func=<optimized out>) at threads.c:949 #15 scm_with_guile (func=<optimized out>, data=<optimized out>) at threads.c:955 #16 0x00000000004008bb in a_libguile_thread_ (unused=0x0) at corruption_guile.c:9 #17 0x00007f3b4ab5bf6e in GC_inner_start_routine (sb=<error reading variable: value has been optimized out>, arg=<error reading variable: value has been optimized out>) at pthread_start.c:56 #18 0x00007f3b4ab57302 in GC_call_with_stack_base (fn=<optimized out>, arg=<optimized out>) at misc.c:1553 #19 0x00007f3b4a9290a4 in start_thread (arg=0x7f3b44a80700) at pthread_create.c:309 #20 0x00007f3b4a65e87d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 3 (Thread 0x7f3b46283700 (LWP 30464)): #0 0x00007f3b4a92fadd in read () at ../sysdeps/unix/syscall-template.S:81 #1 0x00007f3b4ae61227 in read_signal_pipe_data (data=0x7f3b46282840) at scmsigs.c:149 #2 0x00007f3b4ab5ca20 in GC_do_blocking_inner (data=data@entry=0x7f3b46282800 "\020\022\346J;\177", context=context@entry=0x7f3b46282440) at pthread_support.c:1141 #3 0x00007f3b4ab5e07c in GC_with_callee_saves_pushed (fn=0x7f3b4ab5c9e0 <GC_do_blocking_inner>, arg=arg@entry=0x7f3b46282800 "\020\022\346J;\177") at mach_dep.c:273 #4 0x00007f3b4ab5733c in GC_do_blocking (fn=fn@entry=0x7f3b4ae61210 <read_signal_pipe_data>, client_data=client_data@entry=0x7f3b46282840) at misc.c:1657 #5 0x00007f3b4ae83b3a in with_gc_inactive (data=0x7f3b46282840, func=0x7f3b4ae61210 <read_signal_pipe_data>) at threads.c:230 #6 scm_without_guile (func=0x7f3b4ae61210 <read_signal_pipe_data>, data=0x7f3b46282840) at threads.c:968 #7 0x00007f3b4ae6118f in signal_delivery_thread (data=<optimized out>) at scmsigs.c:169 #8 0x00007f3b4aea0752 in vm_regular_engine (vm=0xf, program=0x7f3b46282840, argv=0x2285168, nargs=1256598096) at vm-i-system.c:858 #9 0x00007f3b4ae0f5ce in scm_call_3 (proc=0x1d54c30, arg1=<optimized out>, arg2=<optimized out>, arg3=<optimized out>) at eval.c:500 #10 0x00007f3b4ae85d3e in scm_catch (key=<optimized out>, thunk=<optimized out>, handler=<optimized out>) at throw.c:63 #11 0x00007f3b4ae85d95 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, thunk=<optimized out>, handler=<optimized out>, pre_unwind_handler=<optimized out>) at throw.c:71 #12 0x00007f3b4ae85e8f in scm_c_catch (tag=tag@entry=0x404, body=body@entry=0x7f3b4ae61150 <signal_delivery_thread>, body_data=body_data@entry=0x0, handler=handler@entry=0x7f3b4ae861e0 <scm_handle_by_message>, handler_data=handler_data@entry=0x7f3b4aecaea8, pre_unwind_handler=pre_unwind_handler@entry=0x0, pre_unwind_handler_data=0x0) at throw.c:207 #13 0x00007f3b4ae85e9e in scm_internal_catch (tag=tag@entry=0x404, body=body@entry=0x7f3b4ae61150 <signal_delivery_thread>, body_data=body_data@entry=0x0, handler=handler@entry=0x7f3b4ae861e0 <scm_handle_by_message>, handler_data=handler_data@entry=0x7f3b4aecaea8) at throw.c:216 #14 0x00007f3b4ae83f8c in really_spawn (d=0x7f3b48a87a30) at threads.c:1098 #15 0x00007f3b4ae05c0a in c_body (d=0x7f3b46282d70) at continuations.c:517 #16 0x00007f3b4aea0752 in vm_regular_engine (vm=0xf, program=0x7f3b46282840, argv=0x22850b8, nargs=1256598096) at vm-i-system.c:858 #17 0x00007f3b4ae0f613 in scm_call_4 (proc=0x1d54c30, arg1=arg1@entry=0x404, arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at eval.c:507 #18 0x00007f3b4ae85d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, thunk=<optimized out>, handler=<optimized out>, pre_unwind_handler=<optimized out>) at throw.c:73 #19 0x00007f3b4ae85e8f in scm_c_catch (tag=tag@entry=0x404, body=body@entry=0x7f3b4ae05c00 <c_body>, body_data=body_data@entry=0x7f3b46282d70, handler=handler@entry=0x7f3b4ae05fe0 <c_handler>, handler_data=handler_data@entry=0x7f3b46282d70, pre_unwind_handler=pre_unwind_handler@entry=0x7f3b4ae05d90 <pre_unwind_handler>, pre_unwind_handler_data=0x1e38ff0) at throw.c:207 #20 0x00007f3b4ae06381 in scm_i_with_continuation_barrier (body=body@entry=0x7f3b4ae05c00 <c_body>, body_data=body_data@entry=0x7f3b46282d70, handler=handler@entry=0x7f3b4ae05fe0 <c_handler>, handler_data=handler_data@entry=0x7f3b46282d70, pre_unwind_handler=pre_unwind_handler@entry=0x7f3b4ae05d90 <pre_unwind_handler>, pre_unwind_handler_data=0x1e38ff0) at continuations.c:455 #21 0x00007f3b4ae06415 in scm_c_with_continuation_barrier (func=<optimized out>, data=<optimized out>) at continuations.c:551 #22 0x00007f3b4ae836dc in with_guile_and_parent (base=base@entry=0x7f3b46282dd0, data=data@entry=0x7f3b46282e00) at threads.c:906 #23 0x00007f3b4ab57302 in GC_call_with_stack_base (fn=fn@entry=0x7f3b4ae83690 <with_guile_and_parent>, arg=arg@entry=0x7f3b46282e00) at misc.c:1553 #24 0x00007f3b4ae830dc in scm_i_with_guile_and_parent (parent=<optimized out>, data=0x7f3b48a87a30, func=0x7f3b4ae83f10 <really_spawn>) at threads.c:949 #25 spawn_thread (d=0x7f3b48a87a30) at threads.c:1110 #26 0x00007f3b4ab5bf6e in GC_inner_start_routine (sb=<error reading variable: value has been optimized out>, arg=<error reading variable: value has been optimized out>) at pthread_start.c:56 #27 0x00007f3b4ab57302 in GC_call_with_stack_base (fn=<optimized out>, arg=<optimized out>) at misc.c:1553 #28 0x00007f3b4a9290a4 in start_thread (arg=0x7f3b46283700) at pthread_create.c:309 #29 0x00007f3b4a65e87d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 Thread 2 (Thread 0x7f3b4b32b740 (LWP 30456)): #0 __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 #1 0x00007f3b4a92b4b9 in _L_lock_909 () from /lib/x86_64-linux-gnu/libpthread.so.0 #2 0x00007f3b4a92b2e0 in __GI___pthread_mutex_lock (mutex=0x7f3b4ad79920 <GC_allocate_ml>) at ../nptl/pthread_mutex_lock.c:79 #3 0x00007f3b4ab5ce09 in GC_pthread_join (thread=139892607194880, retval=0x0) at pthread_support.c:1283 #4 0x000000000040099c in main (argc=1, argv=0x7ffcfd8daa48) at corruption_guile.c:33 Thread 1 (Thread 0x7f3b37fff700 (LWP 30467)): #0 GC_generic_malloc (lb=524288, k=<optimized out>) at malloc.c:185 #1 0x00007f3b4ae891ff in make_vm () at vm.c:704 #2 0x00007f3b4ae892d5 in scm_the_vm () at vm.c:781 #3 0x00007f3b4ae0f600 in scm_call_4 (proc=0x1d54c30, arg1=arg1@entry=0x404, arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at eval.c:507 #4 0x00007f3b4ae85d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, thunk=<optimized out>, handler=<optimized out>, pre_unwind_handler=<optimized out>) at throw.c:73 #5 0x00007f3b4ae85e8f in scm_c_catch (tag=tag@entry=0x404, body=body@entry=0x7f3b4ae05c00 <c_body>, body_data=body_data@entry=0x7f3b37ffed50, handler=handler@entry=0x7f3b4ae05fe0 <c_handler>, handler_data=handler_data@entry=0x7f3b37ffed50, pre_unwind_handler=pre_unwind_handler@entry=0x7f3b4ae05d90 <pre_unwind_handler>, pre_unwind_handler_data=0x1e38ff0) at throw.c:207 #6 0x00007f3b4ae06381 in scm_i_with_continuation_barrier (body=body@entry=0x7f3b4ae05c00 <c_body>, body_data=body_data@entry=0x7f3b37ffed50, handler=handler@entry=0x7f3b4ae05fe0 <c_handler>, handler_data=handler_data@entry=0x7f3b37ffed50, pre_unwind_handler=pre_unwind_handler@entry=0x7f3b4ae05d90 <pre_unwind_handler>, pre_unwind_handler_data=0x1e38ff0) at continuations.c:455 #7 0x00007f3b4ae06415 in scm_c_with_continuation_barrier (func=<optimized out>, data=<optimized out>) at continuations.c:551 #8 0x00007f3b4ae836dc in with_guile_and_parent (base=base@entry=0x7f3b37ffedb0, data=data@entry=0x7f3b37ffede0) at threads.c:906 #9 0x00007f3b4ab57302 in GC_call_with_stack_base (fn=fn@entry=0x7f3b4ae83690 <with_guile_and_parent>, arg=arg@entry=0x7f3b37ffede0) at misc.c:1553 #10 0x00007f3b4ae83ac8 in scm_i_with_guile_and_parent (parent=<optimized out>, data=<optimized out>, func=<optimized out>) at threads.c:949 #11 scm_with_guile (func=<optimized out>, data=<optimized out>) at threads.c:955 #12 0x00000000004008bb in a_libguile_thread_ (unused=0x0) at corruption_guile.c:9 #13 0x00007f3b4ab5bf6e in GC_inner_start_routine (sb=<error reading variable: value has been optimized out>, arg=<error reading variable: value has been optimized out>) at pthread_start.c:56 #14 0x00007f3b4ab57302 in GC_call_with_stack_base (fn=<optimized out>, arg=<optimized out>) at misc.c:1553 #15 0x00007f3b4a9290a4 in start_thread (arg=0x7f3b37fff700) at pthread_create.c:309 #16 0x00007f3b4a65e87d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 On Wed, Jun 22, 2016 at 11:27 PM, Andy Wingo <wingo@pobox.com> wrote: > I can reproduce this bug, but I can't get backtraces from my core file > :/ Irritating. Are you able to get backtraces reliably? Can you > provide a "thr apply all bt" ? > > Regards, > > Andy > > On Tue 06 Jan 2015 15:27, Anthonin Bonnefoy < > anthonin.bonnefoy@securactive.net> writes: > > > Hi all, > > > > I have segfaults occurring sometimes when threads are starting with > > scm_with_guile while main thread is using malloc. > > > > Example program: > > ``` > > #include <stdlib.h> > > #include <pthread.h> > > #include <libguile.h> > > > > static void *a_libguile_thread(void *unused) { > > } > > > > static void *a_libguile_thread_(void *unused) { > > scm_with_guile(a_libguile_thread, NULL); > > } > > > > static void do_mallocs(void) { > > void *a[1000]; > > for (int i = 0; i < 1000; ++i) { > > a[i] = malloc(356); > > } > > for (int i = 0; i < 1000; ++i) { > > free(a[i]); > > } > > } > > > > int main(int argc, char *argv[]) { > > scm_init_guile(); > > > > pthread_t pth[10]; > > for (int i = 0; i < 10; ++i) { > > GC_pthread_create(pth + i, NULL, a_libguile_thread_, NULL); > > } > > > > do_mallocs(); > > > > for (int i = 0; i < 10; ++i) { > > GC_pthread_join(pth[i], NULL); > > } > > > > return 0; > > } > > > > ``` > > To compile: > > gcc corruption_guile.c -g -std=c99 `pkg-config --cflags --libs > > guile-2.0` > > ``` > > Some iterations are needed before having the segfaults: > > while ./a.out; do echo -n "."; done; > > ``` > > Versions: > > gcc (Debian 4.9.1-19) 4.9.1 > > guile (GNU Guile) 2.0.11.20-4338f (also tried from v2.0.11 tag) > > libgc gc7_2d > > ``` > > Backtrace: > > > > #0 GC_generic_malloc (lb=524288, k=<optimized out>) at malloc.c:185 > > #1 0x00007fcc535541ff in make_vm () at vm.c:704 > > #2 0x00007fcc535542d5 in scm_the_vm () at vm.c:781 > > #3 0x00007fcc534da600 in scm_call_4 (proc=0x1198c30, > > arg1=arg1@entry=0x404, arg2=<optimized out>, arg3=<optimized out>, > > arg4=<optimized out>) at eval.c:507 > > #4 0x00007fcc53550d89 in scm_catch_with_pre_unwind_handler > > (key=key@entry=0x404, thunk=<optimized out>, handler=<optimized out>, > > pre_unwind_handler=<optimized out>) at throw.c:73 > > #5 0x00007fcc53550e8f in scm_c_catch (tag=tag@entry=0x404, > > body=body@entry=0x7fcc534d0c00 <c_body>, > > body_data=body_data@entry=0x7fcc4d14cd50, > > handler=handler@entry=0x7fcc534d0fe0 <c_handler>, > > handler_data=handler_data@entry=0x7fcc4d14cd50 > > , pre_unwind_handler=pre_unwind_handler@entry=0x7fcc534d0d90 > > <pre_unwind_handler>, pre_unwind_handler_data=0x127cff0) at > > throw.c:207 > > #6 0x00007fcc534d1381 in scm_i_with_continuation_barrier > > (body=body@entry=0x7fcc534d0c00 <c_body>, > > body_data=body_data@entry=0x7fcc4d14cd50, > > handler=handler@entry=0x7fcc534d0fe0 <c_handler>, > > handler_data=handler_data@entry=0x7fcc4d14cd50, > > pre_unwind_handler=pre_unwind_handler@entry=0x7fcc534d0d90 > > <pre_unwind_handler>, pre_unwind_handler_data=0x127cff0) at > > continuations.c:455 > > #7 0x00007fcc534d1415 in scm_c_with_continuation_barrier > > (func=<optimized out>, data=<optimized out>) at continuations.c:551 > > #8 0x00007fcc5354e6dc in with_guile_and_parent > > (base=base@entry=0x7fcc4d14cdb0, data=data@entry=0x7fcc4d14cde0) at > > threads.c:906 > > #9 0x00007fcc53222302 in GC_call_with_stack_base > > (fn=fn@entry=0x7fcc5354e690 <with_guile_and_parent>, > > arg=arg@entry=0x7fcc4d14cde0) at misc.c:1553 > > #10 0x00007fcc5354eac8 in scm_i_with_guile_and_parent > > (parent=<optimized out>, data=<optimized out>, func=<optimized out>) > > at threads.c:949 > > #11 scm_with_guile (func=<optimized out>, data=<optimized out>) at > > threads.c:955 > > #12 0x00000000004008bb in a_libguile_thread_ (unused=0x0) at > > corruption_guile.c:11 > > #13 0x00007fcc53226f6e in GC_inner_start_routine (sb=<error reading > > variable: value has been optimized out>, arg=<error reading variable: > > value has been optimized out>) at pthread_start.c:56 > > #14 0x00007fcc53222302 in GC_call_with_stack_base (fn=<optimized out>, > > arg=<optimized out>) at misc.c:1553 > > #15 0x00007fcc52ff40a4 in start_thread (arg=0x7fcc4d14d700) at > > pthread_create.c:309 > > #16 0x00007fcc52d28ccd in clone () at . > > ./sysdeps/unix/sysv/linux/x86_64/clone.S:111 > > ``` > > > > I thought at first it was a problem with libgc but the given program > > run without problems. > > ``` > > #include <stdlib.h> > > #include <pthread.h> > > #define GC_THREADS 1 > > #define GC_NO_THREAD_REDIRECTS 1 > > #include <gc/gc_mark.h> > > #include <gc.h> > > > > static void *a_lib_gc_thread(void *unused) { > > void *a; > > for (int i = 0; i < 100; ++i) { > > a = GC_generic_malloc(524288, 6); > > } > > GC_free(a); > > } > > > > static void do_mallocs(void) { > > void *a[100]; > > for (int i = 0; i < 100; ++i) { > > a[i] = malloc(356); > > } > > for (int i = 0; i < 100; ++i) { > > free(a[i]); > > } > > } > > > > int main(int argc, char *argv[]) { > > pthread_t pth[10]; > > for (int i = 0; i < 10; ++i) { > > GC_pthread_create(pth + i, NULL, a_lib_gc_thread, NULL); > > } > > do_mallocs(); > > for (int i = 0; i < 10; ++i) { > > GC_pthread_join(pth[i], NULL); > > } > > return 0; > > } > > ``` > > I also tried to replace malloc by scm_malloc with no luck. > > > > Regards, Anthonin > [-- Attachment #2: Type: text/html, Size: 59654 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#19523: Segfault when creating thread with scm_with_guile 2016-06-23 6:43 ` Anthonin Bonnefoy @ 2016-06-23 8:19 ` Anthonin Bonnefoy 0 siblings, 0 replies; 6+ messages in thread From: Anthonin Bonnefoy @ 2016-06-23 8:19 UTC (permalink / raw) To: Andy Wingo; +Cc: 19523 [-- Attachment #1: Type: text/plain, Size: 56374 bytes --] Forget about the specific sha1, it compiled with my system-wide .so which should be on the v2.0.11 tag. I tried to reproduce the problem in a rr record (I had to change SIG_SUSPEND to SIGUSR1 in bdwgc) without success. On Thu, Jun 23, 2016 at 8:43 AM, Anthonin Bonnefoy < anthonin.bonnefoy@securactive.net> wrote: > I moved guile to 08df681976d6c6d97a659f4aebb6f7125e5aad2e before > generating those coredumps. > Backtraces are a bit different between executions, so here are two "t a a > bt" from two differents coredump. > > First backtrace: > > #0 GC_generic_malloc (lb=524288, k=<optimized out>) at malloc.c:185 > > Thread 12 (Thread 0x7fb4d6055700 (LWP 28923)): > #0 __lll_lock_wait () at > ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 > #1 0x00007fb4d8efa4b9 in _L_lock_909 () from > /lib/x86_64-linux-gnu/libpthread.so.0 > #2 0x00007fb4d8efa2e0 in __GI___pthread_mutex_lock (mutex=0x7fb4d9348920 > <GC_allocate_ml>) at ../nptl/pthread_mutex_lock.c:79 > #3 0x00007fb4d912195d in GC_core_malloc (lb=16) at malloc.c:247 > #4 0x00007fb4d941c636 in scm_cell (cdr=772, car=9845792) at > ../libguile/gc.h:232 > #5 scm_cons (x=0x963c20, y=0x304) at pairs.c:78 > #6 0x00007fb4d946aed8 in vm_regular_engine (vm=0x7fb4d9348920 > <GC_allocate_ml>, program=0x80, argv=0x963c20, nargs=11893760) at > vm-i-system.c:1488 > #7 0x00007fb4d93de613 in scm_call_4 (proc=0x829c30, arg1=arg1@entry=0x404, > arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at > eval.c:507 > #8 0x00007fb4d9454d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, > thunk=<optimized out>, handler=<optimized out>, > pre_unwind_handler=<optimized out>) at throw.c:73 > #9 0x00007fb4d9454e8f in scm_c_catch (tag=tag@entry=0x404, > body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4d6054da0, > handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, > handler_data=handler_data@entry=0x7fb4d6054da0, > pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at throw.c:207 > #10 0x00007fb4d93d5381 in scm_i_with_continuation_barrier (body=body@entry=0x7fb4d93d4c00 > <c_body>, body_data=body_data@entry=0x7fb4d6054da0, handler=handler@entry=0x7fb4d93d4fe0 > <c_handler>, handler_data=handler_data@entry=0x7fb4d6054da0, > pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at > continuations.c:455 > #11 0x00007fb4d93d5415 in scm_c_with_continuation_barrier (func=<optimized > out>, data=<optimized out>) at continuations.c:551 > #12 0x00007fb4d912bb00 in GC_call_with_gc_active (fn=fn@entry=0x7fb4d9452040 > <with_guile_trampoline>, client_data=client_data@entry=0x7fb4d6054e70) at > pthread_support.c:1180 > #13 0x00007fb4d9452721 in with_gc_active (data=0x7fb4d6054e70, > func=0x7fb4d9452040 <with_guile_trampoline>) at threads.c:236 > #14 with_guile_and_parent (base=base@entry=0x7fb4d6054e40, data=data@entry=0x7fb4d6054e70) > at threads.c:934 > #15 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452690 > <with_guile_and_parent>, arg=arg@entry=0x7fb4d6054e70) at misc.c:1553 > #16 0x00007fb4d9452ac8 in scm_i_with_guile_and_parent (parent=<optimized > out>, data=<optimized out>, func=<optimized out>) at threads.c:949 > #17 scm_with_guile (func=<optimized out>, data=<optimized out>) at > threads.c:955 > #18 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452ad0 > <do_thread_exit_trampoline>, arg=arg@entry=0xb57c00) at misc.c:1553 > #19 0x00007fb4d9451aee in on_thread_exit (v=0xb57c00) at threads.c:752 > #20 0x00007fb4d8ef7e62 in __nptl_deallocate_tsd () at pthread_create.c:157 > #21 0x00007fb4d8ef80b7 in start_thread (arg=0x7fb4d6055700) at > pthread_create.c:322 > #22 0x00007fb4d8c2d87d in clone () at > ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 > > Thread 11 (Thread 0x7fb4d4852700 (LWP 28926)): > #0 __lll_lock_wait () at > ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 > #1 0x00007fb4d8efa4b9 in _L_lock_909 () from > /lib/x86_64-linux-gnu/libpthread.so.0 > #2 0x00007fb4d8efa2e0 in __GI___pthread_mutex_lock (mutex=0x7fb4d9348920 > <GC_allocate_ml>) at ../nptl/pthread_mutex_lock.c:79 > #3 0x00007fb4d912195d in GC_core_malloc (lb=64) at malloc.c:247 > #4 0x00007fb4d946a51f in scm_words (n_words=<optimized out>, > car=<optimized out>) at ../libguile/gc.h:289 > #5 vm_regular_engine (vm=0x7fb4d9348920 <GC_allocate_ml>, program=0x80, > argv=0x5, nargs=-645099620) at vm-i-system.c:1414 > #6 0x00007fb4d93de613 in scm_call_4 (proc=0x829c30, arg1=arg1@entry=0x404, > arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at > eval.c:507 > #7 0x00007fb4d9454d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, > thunk=<optimized out>, handler=<optimized out>, > pre_unwind_handler=<optimized out>) at throw.c:73 > #8 0x00007fb4d9454e8f in scm_c_catch (tag=tag@entry=0x404, > body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4d4851da0, > handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, > handler_data=handler_data@entry=0x7fb4d4851da0, > pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at throw.c:207 > #9 0x00007fb4d93d5381 in scm_i_with_continuation_barrier (body=body@entry=0x7fb4d93d4c00 > <c_body>, body_data=body_data@entry=0x7fb4d4851da0, handler=handler@entry=0x7fb4d93d4fe0 > <c_handler>, handler_data=handler_data@entry=0x7fb4d4851da0, > pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at > continuations.c:455 > #10 0x00007fb4d93d5415 in scm_c_with_continuation_barrier (func=<optimized > out>, data=<optimized out>) at continuations.c:551 > #11 0x00007fb4d912bb00 in GC_call_with_gc_active (fn=fn@entry=0x7fb4d9452040 > <with_guile_trampoline>, client_data=client_data@entry=0x7fb4d4851e70) at > pthread_support.c:1180 > #12 0x00007fb4d9452721 in with_gc_active (data=0x7fb4d4851e70, > func=0x7fb4d9452040 <with_guile_trampoline>) at threads.c:236 > #13 with_guile_and_parent (base=base@entry=0x7fb4d4851e40, data=data@entry=0x7fb4d4851e70) > at threads.c:934 > #14 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452690 > <with_guile_and_parent>, arg=arg@entry=0x7fb4d4851e70) at misc.c:1553 > #15 0x00007fb4d9452ac8 in scm_i_with_guile_and_parent (parent=<optimized > out>, data=<optimized out>, func=<optimized out>) at threads.c:949 > #16 scm_with_guile (func=<optimized out>, data=<optimized out>) at > threads.c:955 > #17 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452ad0 > <do_thread_exit_trampoline>, arg=arg@entry=0xa10e00) at misc.c:1553 > #18 0x00007fb4d9451aee in on_thread_exit (v=0xa10e00) at threads.c:752 > #19 0x00007fb4d8ef7e62 in __nptl_deallocate_tsd () at pthread_create.c:157 > #20 0x00007fb4d8ef80b7 in start_thread (arg=0x7fb4d4852700) at > pthread_create.c:322 > #21 0x00007fb4d8c2d87d in clone () at > ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 > > Thread 10 (Thread 0x7fb4cf7fe700 (LWP 28929)): > #0 __lll_lock_wait () at > ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 > #1 0x00007fb4d8efa4b9 in _L_lock_909 () from > /lib/x86_64-linux-gnu/libpthread.so.0 > #2 0x00007fb4d8efa2e0 in __GI___pthread_mutex_lock (mutex=0x7fb4d9348920 > <GC_allocate_ml>) at ../nptl/pthread_mutex_lock.c:79 > #3 0x00007fb4d912195d in GC_core_malloc (lb=16) at malloc.c:247 > #4 0x00007fb4d9458292 in scm_cell (cdr=10465024, car=55) at > ../libguile/gc.h:232 > #5 make_vm () at vm.c:728 > #6 0x00007fb4d94582d5 in scm_the_vm () at vm.c:781 > #7 0x00007fb4d93de600 in scm_call_4 (proc=0x829c30, arg1=arg1@entry=0x404, > arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at > eval.c:507 > #8 0x00007fb4d9454d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, > thunk=<optimized out>, handler=<optimized out>, > pre_unwind_handler=<optimized out>) at throw.c:73 > #9 0x00007fb4d9454e8f in scm_c_catch (tag=tag@entry=0x404, > body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4cf7fdd50, > handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, > handler_data=handler_data@entry=0x7fb4cf7fdd50, > pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at throw.c:207 > #10 0x00007fb4d93d5381 in scm_i_with_continuation_barrier (body=body@entry=0x7fb4d93d4c00 > <c_body>, body_data=body_data@entry=0x7fb4cf7fdd50, handler=handler@entry=0x7fb4d93d4fe0 > <c_handler>, handler_data=handler_data@entry=0x7fb4cf7fdd50, > pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at > continuations.c:455 > #11 0x00007fb4d93d5415 in scm_c_with_continuation_barrier (func=<optimized > out>, data=<optimized out>) at continuations.c:551 > #12 0x00007fb4d94526dc in with_guile_and_parent (base=base@entry=0x7fb4cf7fddb0, > data=data@entry=0x7fb4cf7fdde0) at threads.c:906 > #13 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452690 > <with_guile_and_parent>, arg=arg@entry=0x7fb4cf7fdde0) at misc.c:1553 > #14 0x00007fb4d9452ac8 in scm_i_with_guile_and_parent (parent=<optimized > out>, data=<optimized out>, func=<optimized out>) at threads.c:949 > #15 scm_with_guile (func=<optimized out>, data=<optimized out>) at > threads.c:955 > #16 0x00000000004008bb in a_libguile_thread_ (unused=0x0) at > corruption_guile.c:9 > #17 0x00007fb4d912af6e in GC_inner_start_routine (sb=<error reading > variable: value has been optimized out>, arg=<error reading variable: value > has been optimized out>) at pthread_start.c:56 > #18 0x00007fb4d9126302 in GC_call_with_stack_base (fn=<optimized out>, > arg=<optimized out>) at misc.c:1553 > #19 0x00007fb4d8ef80a4 in start_thread (arg=0x7fb4cf7fe700) at > pthread_create.c:309 > #20 0x00007fb4d8c2d87d in clone () at > ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 > > Thread 9 (Thread 0x7fb4d5053700 (LWP 28925)): > #0 pthread_once () at > ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S:94 > #1 0x00007fb4d94309b3 in scm_i_ensure_signal_delivery_thread () at > scmsigs.c:211 > #2 0x00007fb4d9452d50 in do_thread_exit (v=0x815400) at threads.c:669 > #3 0x00007fb4d93d4c0a in c_body (d=0x7fb4d5052da0) at continuations.c:517 > #4 0x00007fb4d946f752 in vm_regular_engine (vm=0x7fb4d96ff3c8 <once>, > program=0x80, argv=0xcda0b8, nargs=-649913776) at vm-i-system.c:858 > #5 0x00007fb4d93de613 in scm_call_4 (proc=0x829c30, arg1=arg1@entry=0x404, > arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at > eval.c:507 > #6 0x00007fb4d9454d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, > thunk=<optimized out>, handler=<optimized out>, > pre_unwind_handler=<optimized out>) at throw.c:73 > #7 0x00007fb4d9454e8f in scm_c_catch (tag=tag@entry=0x404, > body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4d5052da0, > handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, > handler_data=handler_data@entry=0x7fb4d5052da0, > pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at throw.c:207 > #8 0x00007fb4d93d5381 in scm_i_with_continuation_barrier (body=body@entry=0x7fb4d93d4c00 > <c_body>, body_data=body_data@entry=0x7fb4d5052da0, handler=handler@entry=0x7fb4d93d4fe0 > <c_handler>, handler_data=handler_data@entry=0x7fb4d5052da0, > pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at > continuations.c:455 > #9 0x00007fb4d93d5415 in scm_c_with_continuation_barrier (func=<optimized > out>, data=<optimized out>) at continuations.c:551 > #10 0x00007fb4d912bb00 in GC_call_with_gc_active (fn=fn@entry=0x7fb4d9452040 > <with_guile_trampoline>, client_data=client_data@entry=0x7fb4d5052e70) at > pthread_support.c:1180 > #11 0x00007fb4d9452721 in with_gc_active (data=0x7fb4d5052e70, > func=0x7fb4d9452040 <with_guile_trampoline>) at threads.c:236 > #12 with_guile_and_parent (base=base@entry=0x7fb4d5052e40, data=data@entry=0x7fb4d5052e70) > at threads.c:934 > #13 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452690 > <with_guile_and_parent>, arg=arg@entry=0x7fb4d5052e70) at misc.c:1553 > #14 0x00007fb4d9452ac8 in scm_i_with_guile_and_parent (parent=<optimized > out>, data=<optimized out>, func=<optimized out>) at threads.c:949 > #15 scm_with_guile (func=<optimized out>, data=<optimized out>) at > threads.c:955 > #16 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452ad0 > <do_thread_exit_trampoline>, arg=arg@entry=0x815400) at misc.c:1553 > #17 0x00007fb4d9451aee in on_thread_exit (v=0x815400) at threads.c:752 > #18 0x00007fb4d8ef7e62 in __nptl_deallocate_tsd () at pthread_create.c:157 > #19 0x00007fb4d8ef80b7 in start_thread (arg=0x7fb4d5053700) at > pthread_create.c:322 > #20 0x00007fb4d8c2d87d in clone () at > ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 > > Thread 8 (Thread 0x7fb4c7fff700 (LWP 28927)): > #0 memset () at ../sysdeps/x86_64/memset.S:93 > #1 0x00007fb4d91216a0 in GC_generic_malloc (lb=524288, k=<optimized out>) > at malloc.c:193 > #2 0x00007fb4d94581ff in make_vm () at vm.c:704 > #3 0x00007fb4d94582d5 in scm_the_vm () at vm.c:781 > #4 0x00007fb4d93de600 in scm_call_4 (proc=0x829c30, arg1=arg1@entry=0x404, > arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at > eval.c:507 > #5 0x00007fb4d9454d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, > thunk=<optimized out>, handler=<optimized out>, > pre_unwind_handler=<optimized out>) at throw.c:73 > #6 0x00007fb4d9454e8f in scm_c_catch (tag=tag@entry=0x404, > body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4c7ffed50, > handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, > handler_data=handler_data@entry=0x7fb4c7ffed50, > pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at throw.c:207 > #7 0x00007fb4d93d5381 in scm_i_with_continuation_barrier (body=body@entry=0x7fb4d93d4c00 > <c_body>, body_data=body_data@entry=0x7fb4c7ffed50, handler=handler@entry=0x7fb4d93d4fe0 > <c_handler>, handler_data=handler_data@entry=0x7fb4c7ffed50, > pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at > continuations.c:455 > #8 0x00007fb4d93d5415 in scm_c_with_continuation_barrier (func=<optimized > out>, data=<optimized out>) at continuations.c:551 > #9 0x00007fb4d94526dc in with_guile_and_parent (base=base@entry=0x7fb4c7ffedb0, > data=data@entry=0x7fb4c7ffede0) at threads.c:906 > #10 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452690 > <with_guile_and_parent>, arg=arg@entry=0x7fb4c7ffede0) at misc.c:1553 > #11 0x00007fb4d9452ac8 in scm_i_with_guile_and_parent (parent=<optimized > out>, data=<optimized out>, func=<optimized out>) at threads.c:949 > #12 scm_with_guile (func=<optimized out>, data=<optimized out>) at > threads.c:955 > #13 0x00000000004008bb in a_libguile_thread_ (unused=0x0) at > corruption_guile.c:9 > #14 0x00007fb4d912af6e in GC_inner_start_routine (sb=<error reading > variable: value has been optimized out>, arg=<error reading variable: value > has been optimized out>) at pthread_start.c:56 > #15 0x00007fb4d9126302 in GC_call_with_stack_base (fn=<optimized out>, > arg=<optimized out>) at misc.c:1553 > #16 0x00007fb4d8ef80a4 in start_thread (arg=0x7fb4c7fff700) at > pthread_create.c:309 > #17 0x00007fb4d8c2d87d in clone () at > ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 > > Thread 7 (Thread 0x7fb4d6856700 (LWP 28922)): > #0 pthread_cond_wait@@GLIBC_2.3.2 () at > ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185 > #1 0x00007fb4d945308c in scm_pthread_cond_wait (cond=cond@entry=0x7fb4d6855a88, > mutex=mutex@entry=0x7fb4d6855a60) at threads.c:1980 > #2 0x00007fb4d945327b in scm_spawn_thread (body=body@entry=0x7fb4d9430150 > <signal_delivery_thread>, body_data=body_data@entry=0x0, > handler=<optimized out>, handler_data=handler_data@entry=0x7fb4d9499ea8) > at threads.c:1141 > #3 0x00007fb4d9430121 in start_signal_delivery_thread () at scmsigs.c:199 > #4 0x00007fb4d8efd450 in pthread_once () at > ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S:103 > #5 0x00007fb4d94309b3 in scm_i_ensure_signal_delivery_thread () at > scmsigs.c:211 > #6 0x00007fb4d9452d50 in do_thread_exit (v=0xb57e00) at threads.c:669 > #7 0x00007fb4d93d4c0a in c_body (d=0x7fb4d6855da0) at continuations.c:517 > #8 0x00007fb4d946f752 in vm_regular_engine (vm=0x7fb4d6855a8c, > program=0x80, argv=0xb580b8, nargs=-649913776) at vm-i-system.c:858 > #9 0x00007fb4d93de613 in scm_call_4 (proc=0x829c30, arg1=arg1@entry=0x404, > arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at > eval.c:507 > #10 0x00007fb4d9454d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, > thunk=<optimized out>, handler=<optimized out>, > pre_unwind_handler=<optimized out>) at throw.c:73 > #11 0x00007fb4d9454e8f in scm_c_catch (tag=tag@entry=0x404, > body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4d6855da0, > handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, > handler_data=handler_data@entry=0x7fb4d6855da0, > pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at throw.c:207 > #12 0x00007fb4d93d5381 in scm_i_with_continuation_barrier (body=body@entry=0x7fb4d93d4c00 > <c_body>, body_data=body_data@entry=0x7fb4d6855da0, handler=handler@entry=0x7fb4d93d4fe0 > <c_handler>, handler_data=handler_data@entry=0x7fb4d6855da0, > pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at > continuations.c:455 > #13 0x00007fb4d93d5415 in scm_c_with_continuation_barrier (func=<optimized > out>, data=<optimized out>) at continuations.c:551 > #14 0x00007fb4d912bb00 in GC_call_with_gc_active (fn=fn@entry=0x7fb4d9452040 > <with_guile_trampoline>, client_data=client_data@entry=0x7fb4d6855e70) at > pthread_support.c:1180 > #15 0x00007fb4d9452721 in with_gc_active (data=0x7fb4d6855e70, > func=0x7fb4d9452040 <with_guile_trampoline>) at threads.c:236 > #16 with_guile_and_parent (base=base@entry=0x7fb4d6855e40, data=data@entry=0x7fb4d6855e70) > at threads.c:934 > #17 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452690 > <with_guile_and_parent>, arg=arg@entry=0x7fb4d6855e70) at misc.c:1553 > #18 0x00007fb4d9452ac8 in scm_i_with_guile_and_parent (parent=<optimized > out>, data=<optimized out>, func=<optimized out>) at threads.c:949 > #19 scm_with_guile (func=<optimized out>, data=<optimized out>) at > threads.c:955 > #20 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452ad0 > <do_thread_exit_trampoline>, arg=arg@entry=0xb57e00) at misc.c:1553 > #21 0x00007fb4d9451aee in on_thread_exit (v=0xb57e00) at threads.c:752 > #22 0x00007fb4d8ef7e62 in __nptl_deallocate_tsd () at pthread_create.c:157 > #23 0x00007fb4d8ef80b7 in start_thread (arg=0x7fb4d6856700) at > pthread_create.c:322 > #24 0x00007fb4d8c2d87d in clone () at > ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 > > Thread 6 (Thread 0x7fb4cffff700 (LWP 28928)): > #0 __lll_lock_wait () at > ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 > #1 0x00007fb4d8efa4b9 in _L_lock_909 () from > /lib/x86_64-linux-gnu/libpthread.so.0 > #2 0x00007fb4d8efa2e0 in __GI___pthread_mutex_lock (mutex=0x7fb4d9348920 > <GC_allocate_ml>) at ../nptl/pthread_mutex_lock.c:79 > #3 0x00007fb4d912195d in GC_core_malloc (lb=16) at malloc.c:247 > #4 0x00007fb4d9458292 in scm_cell (cdr=8954240, car=55) at > ../libguile/gc.h:232 > #5 make_vm () at vm.c:728 > #6 0x00007fb4d94582d5 in scm_the_vm () at vm.c:781 > #7 0x00007fb4d93de600 in scm_call_4 (proc=0x829c30, arg1=arg1@entry=0x404, > arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at > eval.c:507 > #8 0x00007fb4d9454d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, > thunk=<optimized out>, handler=<optimized out>, > pre_unwind_handler=<optimized out>) at throw.c:73 > #9 0x00007fb4d9454e8f in scm_c_catch (tag=tag@entry=0x404, > body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4cfffed70, > handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, > handler_data=handler_data@entry=0x7fb4cfffed70, > pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at throw.c:207 > #10 0x00007fb4d93d5381 in scm_i_with_continuation_barrier (body=body@entry=0x7fb4d93d4c00 > <c_body>, body_data=body_data@entry=0x7fb4cfffed70, handler=handler@entry=0x7fb4d93d4fe0 > <c_handler>, handler_data=handler_data@entry=0x7fb4cfffed70, > pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at > continuations.c:455 > #11 0x00007fb4d93d5415 in scm_c_with_continuation_barrier (func=<optimized > out>, data=<optimized out>) at continuations.c:551 > #12 0x00007fb4d94526dc in with_guile_and_parent (base=base@entry=0x7fb4cfffedd0, > data=data@entry=0x7fb4cfffee00) at threads.c:906 > #13 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452690 > <with_guile_and_parent>, arg=arg@entry=0x7fb4cfffee00) at misc.c:1553 > #14 0x00007fb4d94520dc in scm_i_with_guile_and_parent (parent=<optimized > out>, data=0x7fb4d6855a30, func=0x7fb4d9452f10 <really_spawn>) at > threads.c:949 > #15 spawn_thread (d=0x7fb4d6855a30) at threads.c:1110 > #16 0x00007fb4d912af6e in GC_inner_start_routine (sb=<error reading > variable: value has been optimized out>, arg=<error reading variable: value > has been optimized out>) at pthread_start.c:56 > #17 0x00007fb4d9126302 in GC_call_with_stack_base (fn=<optimized out>, > arg=<optimized out>) at misc.c:1553 > #18 0x00007fb4d8ef80a4 in start_thread (arg=0x7fb4cffff700) at > pthread_create.c:309 > #19 0x00007fb4d8c2d87d in clone () at > ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 > > Thread 5 (Thread 0x7fb4d5854700 (LWP 28924)): > #0 pthread_once () at > ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S:94 > #1 0x00007fb4d94309b3 in scm_i_ensure_signal_delivery_thread () at > scmsigs.c:211 > #2 0x00007fb4d9452d50 in do_thread_exit (v=0x815600) at threads.c:669 > #3 0x00007fb4d93d4c0a in c_body (d=0x7fb4d5853da0) at continuations.c:517 > #4 0x00007fb4d946f752 in vm_regular_engine (vm=0x7fb4d96ff3c8 <once>, > program=0x80, argv=0xc5a0b8, nargs=-649913776) at vm-i-system.c:858 > #5 0x00007fb4d93de613 in scm_call_4 (proc=0x829c30, arg1=arg1@entry=0x404, > arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at > eval.c:507 > #6 0x00007fb4d9454d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, > thunk=<optimized out>, handler=<optimized out>, > pre_unwind_handler=<optimized out>) at throw.c:73 > #7 0x00007fb4d9454e8f in scm_c_catch (tag=tag@entry=0x404, > body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4d5853da0, > handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, > handler_data=handler_data@entry=0x7fb4d5853da0, > pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at throw.c:207 > #8 0x00007fb4d93d5381 in scm_i_with_continuation_barrier (body=body@entry=0x7fb4d93d4c00 > <c_body>, body_data=body_data@entry=0x7fb4d5853da0, handler=handler@entry=0x7fb4d93d4fe0 > <c_handler>, handler_data=handler_data@entry=0x7fb4d5853da0, > pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at > continuations.c:455 > #9 0x00007fb4d93d5415 in scm_c_with_continuation_barrier (func=<optimized > out>, data=<optimized out>) at continuations.c:551 > #10 0x00007fb4d912bb00 in GC_call_with_gc_active (fn=fn@entry=0x7fb4d9452040 > <with_guile_trampoline>, client_data=client_data@entry=0x7fb4d5853e70) at > pthread_support.c:1180 > #11 0x00007fb4d9452721 in with_gc_active (data=0x7fb4d5853e70, > func=0x7fb4d9452040 <with_guile_trampoline>) at threads.c:236 > #12 with_guile_and_parent (base=base@entry=0x7fb4d5853e40, data=data@entry=0x7fb4d5853e70) > at threads.c:934 > #13 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452690 > <with_guile_and_parent>, arg=arg@entry=0x7fb4d5853e70) at misc.c:1553 > #14 0x00007fb4d9452ac8 in scm_i_with_guile_and_parent (parent=<optimized > out>, data=<optimized out>, func=<optimized out>) at threads.c:949 > #15 scm_with_guile (func=<optimized out>, data=<optimized out>) at > threads.c:955 > #16 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452ad0 > <do_thread_exit_trampoline>, arg=arg@entry=0x815600) at misc.c:1553 > #17 0x00007fb4d9451aee in on_thread_exit (v=0x815600) at threads.c:752 > #18 0x00007fb4d8ef7e62 in __nptl_deallocate_tsd () at pthread_create.c:157 > #19 0x00007fb4d8ef80b7 in start_thread (arg=0x7fb4d5854700) at > pthread_create.c:322 > #20 0x00007fb4d8c2d87d in clone () at > ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 > > Thread 4 (Thread 0x7fb4d7057700 (LWP 28921)): > #0 pthread_once () at > ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S:94 > #1 0x00007fb4d94309b3 in scm_i_ensure_signal_delivery_thread () at > scmsigs.c:211 > #2 0x00007fb4d9452d50 in do_thread_exit (v=0xa10000) at threads.c:669 > #3 0x00007fb4d93d4c0a in c_body (d=0x7fb4d7056da0) at continuations.c:517 > #4 0x00007fb4d946f752 in vm_regular_engine (vm=0x7fb4d96ff3c8 <once>, > program=0x80, argv=0xad70b8, nargs=-649913776) at vm-i-system.c:858 > #5 0x00007fb4d93de613 in scm_call_4 (proc=0x829c30, arg1=arg1@entry=0x404, > arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at > eval.c:507 > #6 0x00007fb4d9454d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, > thunk=<optimized out>, handler=<optimized out>, > pre_unwind_handler=<optimized out>) at throw.c:73 > #7 0x00007fb4d9454e8f in scm_c_catch (tag=tag@entry=0x404, > body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4d7056da0, > handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, > handler_data=handler_data@entry=0x7fb4d7056da0, > pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at throw.c:207 > #8 0x00007fb4d93d5381 in scm_i_with_continuation_barrier (body=body@entry=0x7fb4d93d4c00 > <c_body>, body_data=body_data@entry=0x7fb4d7056da0, handler=handler@entry=0x7fb4d93d4fe0 > <c_handler>, handler_data=handler_data@entry=0x7fb4d7056da0, > pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at > continuations.c:455 > #9 0x00007fb4d93d5415 in scm_c_with_continuation_barrier (func=<optimized > out>, data=<optimized out>) at continuations.c:551 > #10 0x00007fb4d912bb00 in GC_call_with_gc_active (fn=fn@entry=0x7fb4d9452040 > <with_guile_trampoline>, client_data=client_data@entry=0x7fb4d7056e70) at > pthread_support.c:1180 > #11 0x00007fb4d9452721 in with_gc_active (data=0x7fb4d7056e70, > func=0x7fb4d9452040 <with_guile_trampoline>) at threads.c:236 > #12 with_guile_and_parent (base=base@entry=0x7fb4d7056e40, data=data@entry=0x7fb4d7056e70) > at threads.c:934 > #13 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452690 > <with_guile_and_parent>, arg=arg@entry=0x7fb4d7056e70) at misc.c:1553 > #14 0x00007fb4d9452ac8 in scm_i_with_guile_and_parent (parent=<optimized > out>, data=<optimized out>, func=<optimized out>) at threads.c:949 > #15 scm_with_guile (func=<optimized out>, data=<optimized out>) at > threads.c:955 > #16 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452ad0 > <do_thread_exit_trampoline>, arg=arg@entry=0xa10000) at misc.c:1553 > #17 0x00007fb4d9451aee in on_thread_exit (v=0xa10000) at threads.c:752 > #18 0x00007fb4d8ef7e62 in __nptl_deallocate_tsd () at pthread_create.c:157 > #19 0x00007fb4d8ef80b7 in start_thread (arg=0x7fb4d7057700) at > pthread_create.c:322 > #20 0x00007fb4d8c2d87d in clone () at > ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 > > Thread 3 (Thread 0x7fb4d98fa740 (LWP 28919)): > #0 0x00007fb4d8bbe5d6 in _int_free (av=<optimized out>, p=<optimized > out>, have_lock=0) at malloc.c:4077 > #1 0x0000000000400916 in do_mallocs () at corruption_guile.c:18 > #2 0x000000000040097c in main (argc=1, argv=0x7ffef9d57398) at > corruption_guile.c:30 > > Thread 2 (Thread 0x7fb4d7858700 (LWP 28920)): > #0 pthread_once () at > ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S:94 > #1 0x00007fb4d94309b3 in scm_i_ensure_signal_delivery_thread () at > scmsigs.c:211 > #2 0x00007fb4d9452d50 in do_thread_exit (v=0xa10200) at threads.c:669 > #3 0x00007fb4d93d4c0a in c_body (d=0x7fb4d7857da0) at continuations.c:517 > #4 0x00007fb4d946f752 in vm_regular_engine (vm=0x7fb4d96ff3c8 <once>, > program=0x80, argv=0xa570b8, nargs=-649913776) at vm-i-system.c:858 > #5 0x00007fb4d93de613 in scm_call_4 (proc=0x829c30, arg1=arg1@entry=0x404, > arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at > eval.c:507 > #6 0x00007fb4d9454d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, > thunk=<optimized out>, handler=<optimized out>, > pre_unwind_handler=<optimized out>) at throw.c:73 > #7 0x00007fb4d9454e8f in scm_c_catch (tag=tag@entry=0x404, > body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4d7857da0, > handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, > handler_data=handler_data@entry=0x7fb4d7857da0, > pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at throw.c:207 > #8 0x00007fb4d93d5381 in scm_i_with_continuation_barrier (body=body@entry=0x7fb4d93d4c00 > <c_body>, body_data=body_data@entry=0x7fb4d7857da0, handler=handler@entry=0x7fb4d93d4fe0 > <c_handler>, handler_data=handler_data@entry=0x7fb4d7857da0, > pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at > continuations.c:455 > #9 0x00007fb4d93d5415 in scm_c_with_continuation_barrier (func=<optimized > out>, data=<optimized out>) at continuations.c:551 > #10 0x00007fb4d912bb00 in GC_call_with_gc_active (fn=fn@entry=0x7fb4d9452040 > <with_guile_trampoline>, client_data=client_data@entry=0x7fb4d7857e70) at > pthread_support.c:1180 > #11 0x00007fb4d9452721 in with_gc_active (data=0x7fb4d7857e70, > func=0x7fb4d9452040 <with_guile_trampoline>) at threads.c:236 > #12 with_guile_and_parent (base=base@entry=0x7fb4d7857e40, data=data@entry=0x7fb4d7857e70) > at threads.c:934 > #13 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452690 > <with_guile_and_parent>, arg=arg@entry=0x7fb4d7857e70) at misc.c:1553 > #14 0x00007fb4d9452ac8 in scm_i_with_guile_and_parent (parent=<optimized > out>, data=<optimized out>, func=<optimized out>) at threads.c:949 > #15 scm_with_guile (func=<optimized out>, data=<optimized out>) at > threads.c:955 > #16 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452ad0 > <do_thread_exit_trampoline>, arg=arg@entry=0xa10200) at misc.c:1553 > #17 0x00007fb4d9451aee in on_thread_exit (v=0xa10200) at threads.c:752 > #18 0x00007fb4d8ef7e62 in __nptl_deallocate_tsd () at pthread_create.c:157 > #19 0x00007fb4d8ef80b7 in start_thread (arg=0x7fb4d7858700) at > pthread_create.c:322 > #20 0x00007fb4d8c2d87d in clone () at > ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 > > Thread 1 (Thread 0x7fb4ceffd700 (LWP 28930)): > #0 GC_generic_malloc (lb=524288, k=<optimized out>) at malloc.c:185 > #1 0x00007fb4d94581ff in make_vm () at vm.c:704 > #2 0x00007fb4d94582d5 in scm_the_vm () at vm.c:781 > #3 0x00007fb4d93de600 in scm_call_4 (proc=0x829c30, arg1=arg1@entry=0x404, > arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at > eval.c:507 > #4 0x00007fb4d9454d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, > thunk=<optimized out>, handler=<optimized out>, > pre_unwind_handler=<optimized out>) at throw.c:73 > #5 0x00007fb4d9454e8f in scm_c_catch (tag=tag@entry=0x404, > body=body@entry=0x7fb4d93d4c00 <c_body>, body_data=body_data@entry=0x7fb4ceffcd50, > handler=handler@entry=0x7fb4d93d4fe0 <c_handler>, > handler_data=handler_data@entry=0x7fb4ceffcd50, > pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at throw.c:207 > #6 0x00007fb4d93d5381 in scm_i_with_continuation_barrier (body=body@entry=0x7fb4d93d4c00 > <c_body>, body_data=body_data@entry=0x7fb4ceffcd50, handler=handler@entry=0x7fb4d93d4fe0 > <c_handler>, handler_data=handler_data@entry=0x7fb4ceffcd50, > pre_unwind_handler=pre_unwind_handler@entry=0x7fb4d93d4d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x90dff0) at > continuations.c:455 > #7 0x00007fb4d93d5415 in scm_c_with_continuation_barrier (func=<optimized > out>, data=<optimized out>) at continuations.c:551 > #8 0x00007fb4d94526dc in with_guile_and_parent (base=base@entry=0x7fb4ceffcdb0, > data=data@entry=0x7fb4ceffcde0) at threads.c:906 > #9 0x00007fb4d9126302 in GC_call_with_stack_base (fn=fn@entry=0x7fb4d9452690 > <with_guile_and_parent>, arg=arg@entry=0x7fb4ceffcde0) at misc.c:1553 > #10 0x00007fb4d9452ac8 in scm_i_with_guile_and_parent (parent=<optimized > out>, data=<optimized out>, func=<optimized out>) at threads.c:949 > #11 scm_with_guile (func=<optimized out>, data=<optimized out>) at > threads.c:955 > #12 0x00000000004008bb in a_libguile_thread_ (unused=0x0) at > corruption_guile.c:9 > #13 0x00007fb4d912af6e in GC_inner_start_routine (sb=<error reading > variable: value has been optimized out>, arg=<error reading variable: value > has been optimized out>) at pthread_start.c:56 > #14 0x00007fb4d9126302 in GC_call_with_stack_base (fn=<optimized out>, > arg=<optimized out>) at misc.c:1553 > #15 0x00007fb4d8ef80a4 in start_thread (arg=0x7fb4ceffd700) at > pthread_create.c:309 > #16 0x00007fb4d8c2d87d in clone () at > ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 > > > > Second backtrace: > > Thread 6 (Thread 0x7f3b45281700 (LWP 30465)): > #0 __lll_lock_wait () at > ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 > #1 0x00007f3b4a92b4b9 in _L_lock_909 () from > /lib/x86_64-linux-gnu/libpthread.so.0 > #2 0x00007f3b4a92b2e0 in __GI___pthread_mutex_lock (mutex=0x7f3b4ad79920 > <GC_allocate_ml>) at ../nptl/pthread_mutex_lock.c:79 > #3 0x00007f3b4ab5295d in GC_core_malloc (lb=16) at malloc.c:247 > #4 0x00007f3b4ae89292 in scm_cell (cdr=32661376, car=55) at > ../libguile/gc.h:232 > #5 make_vm () at vm.c:728 > #6 0x00007f3b4ae892d5 in scm_the_vm () at vm.c:781 > #7 0x00007f3b4ae0f600 in scm_call_4 (proc=0x1d54c30, arg1=arg1@entry=0x404, > arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at > eval.c:507 > #8 0x00007f3b4ae85d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, > thunk=<optimized out>, handler=<optimized out>, > pre_unwind_handler=<optimized out>) at throw.c:73 > #9 0x00007f3b4ae85e8f in scm_c_catch (tag=tag@entry=0x404, > body=body@entry=0x7f3b4ae05c00 <c_body>, body_data=body_data@entry=0x7f3b45280d50, > handler=handler@entry=0x7f3b4ae05fe0 <c_handler>, > handler_data=handler_data@entry=0x7f3b45280d50, > pre_unwind_handler=pre_unwind_handler@entry=0x7f3b4ae05d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x1e38ff0) at throw.c:207 > #10 0x00007f3b4ae06381 in scm_i_with_continuation_barrier (body=body@entry=0x7f3b4ae05c00 > <c_body>, body_data=body_data@entry=0x7f3b45280d50, handler=handler@entry=0x7f3b4ae05fe0 > <c_handler>, handler_data=handler_data@entry=0x7f3b45280d50, > pre_unwind_handler=pre_unwind_handler@entry=0x7f3b4ae05d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x1e38ff0) at > continuations.c:455 > #11 0x00007f3b4ae06415 in scm_c_with_continuation_barrier (func=<optimized > out>, data=<optimized out>) at continuations.c:551 > #12 0x00007f3b4ae836dc in with_guile_and_parent (base=base@entry=0x7f3b45280db0, > data=data@entry=0x7f3b45280de0) at threads.c:906 > #13 0x00007f3b4ab57302 in GC_call_with_stack_base (fn=fn@entry=0x7f3b4ae83690 > <with_guile_and_parent>, arg=arg@entry=0x7f3b45280de0) at misc.c:1553 > #14 0x00007f3b4ae83ac8 in scm_i_with_guile_and_parent (parent=<optimized > out>, data=<optimized out>, func=<optimized out>) at threads.c:949 > #15 scm_with_guile (func=<optimized out>, data=<optimized out>) at > threads.c:955 > #16 0x00000000004008bb in a_libguile_thread_ (unused=0x0) at > corruption_guile.c:9 > #17 0x00007f3b4ab5bf6e in GC_inner_start_routine (sb=<error reading > variable: value has been optimized out>, arg=<error reading variable: value > has been optimized out>) at pthread_start.c:56 > #18 0x00007f3b4ab57302 in GC_call_with_stack_base (fn=<optimized out>, > arg=<optimized out>) at misc.c:1553 > #19 0x00007f3b4a9290a4 in start_thread (arg=0x7f3b45281700) at > pthread_create.c:309 > #20 0x00007f3b4a65e87d in clone () at > ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 > > Thread 5 (Thread 0x7f3b45a82700 (LWP 30463)): > #0 __lll_lock_wait () at > ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 > #1 0x00007f3b4a92b4b9 in _L_lock_909 () from > /lib/x86_64-linux-gnu/libpthread.so.0 > #2 0x00007f3b4a92b2e0 in __GI___pthread_mutex_lock (mutex=0x7f3b4ad79920 > <GC_allocate_ml>) at ../nptl/pthread_mutex_lock.c:79 > #3 0x00007f3b4ab5295d in GC_core_malloc (lb=16) at malloc.c:247 > #4 0x00007f3b4ae89292 in scm_cell (cdr=31150464, car=55) at > ../libguile/gc.h:232 > #5 make_vm () at vm.c:728 > #6 0x00007f3b4ae892d5 in scm_the_vm () at vm.c:781 > #7 0x00007f3b4ae0f600 in scm_call_4 (proc=0x1d54c30, arg1=arg1@entry=0x404, > arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at > eval.c:507 > #8 0x00007f3b4ae85d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, > thunk=<optimized out>, handler=<optimized out>, > pre_unwind_handler=<optimized out>) at throw.c:73 > #9 0x00007f3b4ae85e8f in scm_c_catch (tag=tag@entry=0x404, > body=body@entry=0x7f3b4ae05c00 <c_body>, body_data=body_data@entry=0x7f3b45a81d50, > handler=handler@entry=0x7f3b4ae05fe0 <c_handler>, > handler_data=handler_data@entry=0x7f3b45a81d50, > pre_unwind_handler=pre_unwind_handler@entry=0x7f3b4ae05d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x1e38ff0) at throw.c:207 > #10 0x00007f3b4ae06381 in scm_i_with_continuation_barrier (body=body@entry=0x7f3b4ae05c00 > <c_body>, body_data=body_data@entry=0x7f3b45a81d50, handler=handler@entry=0x7f3b4ae05fe0 > <c_handler>, handler_data=handler_data@entry=0x7f3b45a81d50, > pre_unwind_handler=pre_unwind_handler@entry=0x7f3b4ae05d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x1e38ff0) at > continuations.c:455 > #11 0x00007f3b4ae06415 in scm_c_with_continuation_barrier (func=<optimized > out>, data=<optimized out>) at continuations.c:551 > #12 0x00007f3b4ae836dc in with_guile_and_parent (base=base@entry=0x7f3b45a81db0, > data=data@entry=0x7f3b45a81de0) at threads.c:906 > #13 0x00007f3b4ab57302 in GC_call_with_stack_base (fn=fn@entry=0x7f3b4ae83690 > <with_guile_and_parent>, arg=arg@entry=0x7f3b45a81de0) at misc.c:1553 > #14 0x00007f3b4ae83ac8 in scm_i_with_guile_and_parent (parent=<optimized > out>, data=<optimized out>, func=<optimized out>) at threads.c:949 > #15 scm_with_guile (func=<optimized out>, data=<optimized out>) at > threads.c:955 > #16 0x00000000004008bb in a_libguile_thread_ (unused=0x0) at > corruption_guile.c:9 > #17 0x00007f3b4ab5bf6e in GC_inner_start_routine (sb=<error reading > variable: value has been optimized out>, arg=<error reading variable: value > has been optimized out>) at pthread_start.c:56 > #18 0x00007f3b4ab57302 in GC_call_with_stack_base (fn=<optimized out>, > arg=<optimized out>) at misc.c:1553 > #19 0x00007f3b4a9290a4 in start_thread (arg=0x7f3b45a82700) at > pthread_create.c:309 > #20 0x00007f3b4a65e87d in clone () at > ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 > > Thread 4 (Thread 0x7f3b44a80700 (LWP 30466)): > #0 __lll_lock_wait () at > ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 > #1 0x00007f3b4a92b4b9 in _L_lock_909 () from > /lib/x86_64-linux-gnu/libpthread.so.0 > #2 0x00007f3b4a92b2e0 in __GI___pthread_mutex_lock (mutex=0x7f3b4ad79920 > <GC_allocate_ml>) at ../nptl/pthread_mutex_lock.c:79 > #3 0x00007f3b4ab5295d in GC_core_malloc (lb=16) at malloc.c:247 > #4 0x00007f3b4ae89292 in scm_cell (cdr=32661248, car=55) at > ../libguile/gc.h:232 > #5 make_vm () at vm.c:728 > #6 0x00007f3b4ae892d5 in scm_the_vm () at vm.c:781 > #7 0x00007f3b4ae0f600 in scm_call_4 (proc=0x1d54c30, arg1=arg1@entry=0x404, > arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at > eval.c:507 > #8 0x00007f3b4ae85d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, > thunk=<optimized out>, handler=<optimized out>, > pre_unwind_handler=<optimized out>) at throw.c:73 > #9 0x00007f3b4ae85e8f in scm_c_catch (tag=tag@entry=0x404, > body=body@entry=0x7f3b4ae05c00 <c_body>, body_data=body_data@entry=0x7f3b44a7fd50, > handler=handler@entry=0x7f3b4ae05fe0 <c_handler>, > handler_data=handler_data@entry=0x7f3b44a7fd50, > pre_unwind_handler=pre_unwind_handler@entry=0x7f3b4ae05d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x1e38ff0) at throw.c:207 > #10 0x00007f3b4ae06381 in scm_i_with_continuation_barrier (body=body@entry=0x7f3b4ae05c00 > <c_body>, body_data=body_data@entry=0x7f3b44a7fd50, handler=handler@entry=0x7f3b4ae05fe0 > <c_handler>, handler_data=handler_data@entry=0x7f3b44a7fd50, > pre_unwind_handler=pre_unwind_handler@entry=0x7f3b4ae05d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x1e38ff0) at > continuations.c:455 > #11 0x00007f3b4ae06415 in scm_c_with_continuation_barrier (func=<optimized > out>, data=<optimized out>) at continuations.c:551 > #12 0x00007f3b4ae836dc in with_guile_and_parent (base=base@entry=0x7f3b44a7fdb0, > data=data@entry=0x7f3b44a7fde0) at threads.c:906 > #13 0x00007f3b4ab57302 in GC_call_with_stack_base (fn=fn@entry=0x7f3b4ae83690 > <with_guile_and_parent>, arg=arg@entry=0x7f3b44a7fde0) at misc.c:1553 > #14 0x00007f3b4ae83ac8 in scm_i_with_guile_and_parent (parent=<optimized > out>, data=<optimized out>, func=<optimized out>) at threads.c:949 > #15 scm_with_guile (func=<optimized out>, data=<optimized out>) at > threads.c:955 > #16 0x00000000004008bb in a_libguile_thread_ (unused=0x0) at > corruption_guile.c:9 > #17 0x00007f3b4ab5bf6e in GC_inner_start_routine (sb=<error reading > variable: value has been optimized out>, arg=<error reading variable: value > has been optimized out>) at pthread_start.c:56 > #18 0x00007f3b4ab57302 in GC_call_with_stack_base (fn=<optimized out>, > arg=<optimized out>) at misc.c:1553 > #19 0x00007f3b4a9290a4 in start_thread (arg=0x7f3b44a80700) at > pthread_create.c:309 > #20 0x00007f3b4a65e87d in clone () at > ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 > > Thread 3 (Thread 0x7f3b46283700 (LWP 30464)): > #0 0x00007f3b4a92fadd in read () at ../sysdeps/unix/syscall-template.S:81 > #1 0x00007f3b4ae61227 in read_signal_pipe_data (data=0x7f3b46282840) at > scmsigs.c:149 > #2 0x00007f3b4ab5ca20 in GC_do_blocking_inner (data=data@entry=0x7f3b46282800 > "\020\022\346J;\177", context=context@entry=0x7f3b46282440) at > pthread_support.c:1141 > #3 0x00007f3b4ab5e07c in GC_with_callee_saves_pushed (fn=0x7f3b4ab5c9e0 > <GC_do_blocking_inner>, arg=arg@entry=0x7f3b46282800 > "\020\022\346J;\177") at mach_dep.c:273 > #4 0x00007f3b4ab5733c in GC_do_blocking (fn=fn@entry=0x7f3b4ae61210 > <read_signal_pipe_data>, client_data=client_data@entry=0x7f3b46282840) at > misc.c:1657 > #5 0x00007f3b4ae83b3a in with_gc_inactive (data=0x7f3b46282840, > func=0x7f3b4ae61210 <read_signal_pipe_data>) at threads.c:230 > #6 scm_without_guile (func=0x7f3b4ae61210 <read_signal_pipe_data>, > data=0x7f3b46282840) at threads.c:968 > #7 0x00007f3b4ae6118f in signal_delivery_thread (data=<optimized out>) at > scmsigs.c:169 > #8 0x00007f3b4aea0752 in vm_regular_engine (vm=0xf, > program=0x7f3b46282840, argv=0x2285168, nargs=1256598096) at > vm-i-system.c:858 > #9 0x00007f3b4ae0f5ce in scm_call_3 (proc=0x1d54c30, arg1=<optimized > out>, arg2=<optimized out>, arg3=<optimized out>) at eval.c:500 > #10 0x00007f3b4ae85d3e in scm_catch (key=<optimized out>, thunk=<optimized > out>, handler=<optimized out>) at throw.c:63 > #11 0x00007f3b4ae85d95 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, > thunk=<optimized out>, handler=<optimized out>, > pre_unwind_handler=<optimized out>) at throw.c:71 > #12 0x00007f3b4ae85e8f in scm_c_catch (tag=tag@entry=0x404, > body=body@entry=0x7f3b4ae61150 <signal_delivery_thread>, > body_data=body_data@entry=0x0, handler=handler@entry=0x7f3b4ae861e0 > <scm_handle_by_message>, handler_data=handler_data@entry=0x7f3b4aecaea8, > pre_unwind_handler=pre_unwind_handler@entry=0x0, > pre_unwind_handler_data=0x0) at throw.c:207 > #13 0x00007f3b4ae85e9e in scm_internal_catch (tag=tag@entry=0x404, > body=body@entry=0x7f3b4ae61150 <signal_delivery_thread>, > body_data=body_data@entry=0x0, handler=handler@entry=0x7f3b4ae861e0 > <scm_handle_by_message>, handler_data=handler_data@entry=0x7f3b4aecaea8) > at throw.c:216 > #14 0x00007f3b4ae83f8c in really_spawn (d=0x7f3b48a87a30) at threads.c:1098 > #15 0x00007f3b4ae05c0a in c_body (d=0x7f3b46282d70) at continuations.c:517 > #16 0x00007f3b4aea0752 in vm_regular_engine (vm=0xf, > program=0x7f3b46282840, argv=0x22850b8, nargs=1256598096) at > vm-i-system.c:858 > #17 0x00007f3b4ae0f613 in scm_call_4 (proc=0x1d54c30, arg1=arg1@entry=0x404, > arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at > eval.c:507 > #18 0x00007f3b4ae85d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, > thunk=<optimized out>, handler=<optimized out>, > pre_unwind_handler=<optimized out>) at throw.c:73 > #19 0x00007f3b4ae85e8f in scm_c_catch (tag=tag@entry=0x404, > body=body@entry=0x7f3b4ae05c00 <c_body>, body_data=body_data@entry=0x7f3b46282d70, > handler=handler@entry=0x7f3b4ae05fe0 <c_handler>, > handler_data=handler_data@entry=0x7f3b46282d70, > pre_unwind_handler=pre_unwind_handler@entry=0x7f3b4ae05d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x1e38ff0) at throw.c:207 > #20 0x00007f3b4ae06381 in scm_i_with_continuation_barrier (body=body@entry=0x7f3b4ae05c00 > <c_body>, body_data=body_data@entry=0x7f3b46282d70, handler=handler@entry=0x7f3b4ae05fe0 > <c_handler>, handler_data=handler_data@entry=0x7f3b46282d70, > pre_unwind_handler=pre_unwind_handler@entry=0x7f3b4ae05d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x1e38ff0) at > continuations.c:455 > #21 0x00007f3b4ae06415 in scm_c_with_continuation_barrier (func=<optimized > out>, data=<optimized out>) at continuations.c:551 > #22 0x00007f3b4ae836dc in with_guile_and_parent (base=base@entry=0x7f3b46282dd0, > data=data@entry=0x7f3b46282e00) at threads.c:906 > #23 0x00007f3b4ab57302 in GC_call_with_stack_base (fn=fn@entry=0x7f3b4ae83690 > <with_guile_and_parent>, arg=arg@entry=0x7f3b46282e00) at misc.c:1553 > #24 0x00007f3b4ae830dc in scm_i_with_guile_and_parent (parent=<optimized > out>, data=0x7f3b48a87a30, func=0x7f3b4ae83f10 <really_spawn>) at > threads.c:949 > #25 spawn_thread (d=0x7f3b48a87a30) at threads.c:1110 > #26 0x00007f3b4ab5bf6e in GC_inner_start_routine (sb=<error reading > variable: value has been optimized out>, arg=<error reading variable: value > has been optimized out>) at pthread_start.c:56 > #27 0x00007f3b4ab57302 in GC_call_with_stack_base (fn=<optimized out>, > arg=<optimized out>) at misc.c:1553 > #28 0x00007f3b4a9290a4 in start_thread (arg=0x7f3b46283700) at > pthread_create.c:309 > #29 0x00007f3b4a65e87d in clone () at > ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 > > Thread 2 (Thread 0x7f3b4b32b740 (LWP 30456)): > #0 __lll_lock_wait () at > ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:135 > #1 0x00007f3b4a92b4b9 in _L_lock_909 () from > /lib/x86_64-linux-gnu/libpthread.so.0 > #2 0x00007f3b4a92b2e0 in __GI___pthread_mutex_lock (mutex=0x7f3b4ad79920 > <GC_allocate_ml>) at ../nptl/pthread_mutex_lock.c:79 > #3 0x00007f3b4ab5ce09 in GC_pthread_join (thread=139892607194880, > retval=0x0) at pthread_support.c:1283 > #4 0x000000000040099c in main (argc=1, argv=0x7ffcfd8daa48) at > corruption_guile.c:33 > > Thread 1 (Thread 0x7f3b37fff700 (LWP 30467)): > #0 GC_generic_malloc (lb=524288, k=<optimized out>) at malloc.c:185 > #1 0x00007f3b4ae891ff in make_vm () at vm.c:704 > #2 0x00007f3b4ae892d5 in scm_the_vm () at vm.c:781 > #3 0x00007f3b4ae0f600 in scm_call_4 (proc=0x1d54c30, arg1=arg1@entry=0x404, > arg2=<optimized out>, arg3=<optimized out>, arg4=<optimized out>) at > eval.c:507 > #4 0x00007f3b4ae85d89 in scm_catch_with_pre_unwind_handler (key=key@entry=0x404, > thunk=<optimized out>, handler=<optimized out>, > pre_unwind_handler=<optimized out>) at throw.c:73 > #5 0x00007f3b4ae85e8f in scm_c_catch (tag=tag@entry=0x404, > body=body@entry=0x7f3b4ae05c00 <c_body>, body_data=body_data@entry=0x7f3b37ffed50, > handler=handler@entry=0x7f3b4ae05fe0 <c_handler>, > handler_data=handler_data@entry=0x7f3b37ffed50, > pre_unwind_handler=pre_unwind_handler@entry=0x7f3b4ae05d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x1e38ff0) at throw.c:207 > #6 0x00007f3b4ae06381 in scm_i_with_continuation_barrier (body=body@entry=0x7f3b4ae05c00 > <c_body>, body_data=body_data@entry=0x7f3b37ffed50, handler=handler@entry=0x7f3b4ae05fe0 > <c_handler>, handler_data=handler_data@entry=0x7f3b37ffed50, > pre_unwind_handler=pre_unwind_handler@entry=0x7f3b4ae05d90 > <pre_unwind_handler>, pre_unwind_handler_data=0x1e38ff0) at > continuations.c:455 > #7 0x00007f3b4ae06415 in scm_c_with_continuation_barrier (func=<optimized > out>, data=<optimized out>) at continuations.c:551 > #8 0x00007f3b4ae836dc in with_guile_and_parent (base=base@entry=0x7f3b37ffedb0, > data=data@entry=0x7f3b37ffede0) at threads.c:906 > #9 0x00007f3b4ab57302 in GC_call_with_stack_base (fn=fn@entry=0x7f3b4ae83690 > <with_guile_and_parent>, arg=arg@entry=0x7f3b37ffede0) at misc.c:1553 > #10 0x00007f3b4ae83ac8 in scm_i_with_guile_and_parent (parent=<optimized > out>, data=<optimized out>, func=<optimized out>) at threads.c:949 > #11 scm_with_guile (func=<optimized out>, data=<optimized out>) at > threads.c:955 > #12 0x00000000004008bb in a_libguile_thread_ (unused=0x0) at > corruption_guile.c:9 > #13 0x00007f3b4ab5bf6e in GC_inner_start_routine (sb=<error reading > variable: value has been optimized out>, arg=<error reading variable: value > has been optimized out>) at pthread_start.c:56 > #14 0x00007f3b4ab57302 in GC_call_with_stack_base (fn=<optimized out>, > arg=<optimized out>) at misc.c:1553 > #15 0x00007f3b4a9290a4 in start_thread (arg=0x7f3b37fff700) at > pthread_create.c:309 > #16 0x00007f3b4a65e87d in clone () at > ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 > > > > > On Wed, Jun 22, 2016 at 11:27 PM, Andy Wingo <wingo@pobox.com> wrote: > >> I can reproduce this bug, but I can't get backtraces from my core file >> :/ Irritating. Are you able to get backtraces reliably? Can you >> provide a "thr apply all bt" ? >> >> Regards, >> >> Andy >> >> On Tue 06 Jan 2015 15:27, Anthonin Bonnefoy < >> anthonin.bonnefoy@securactive.net> writes: >> >> > Hi all, >> > >> > I have segfaults occurring sometimes when threads are starting with >> > scm_with_guile while main thread is using malloc. >> > >> > Example program: >> > ``` >> > #include <stdlib.h> >> > #include <pthread.h> >> > #include <libguile.h> >> > >> > static void *a_libguile_thread(void *unused) { >> > } >> > >> > static void *a_libguile_thread_(void *unused) { >> > scm_with_guile(a_libguile_thread, NULL); >> > } >> > >> > static void do_mallocs(void) { >> > void *a[1000]; >> > for (int i = 0; i < 1000; ++i) { >> > a[i] = malloc(356); >> > } >> > for (int i = 0; i < 1000; ++i) { >> > free(a[i]); >> > } >> > } >> > >> > int main(int argc, char *argv[]) { >> > scm_init_guile(); >> > >> > pthread_t pth[10]; >> > for (int i = 0; i < 10; ++i) { >> > GC_pthread_create(pth + i, NULL, a_libguile_thread_, NULL); >> > } >> > >> > do_mallocs(); >> > >> > for (int i = 0; i < 10; ++i) { >> > GC_pthread_join(pth[i], NULL); >> > } >> > >> > return 0; >> > } >> > >> > ``` >> > To compile: >> > gcc corruption_guile.c -g -std=c99 `pkg-config --cflags --libs >> > guile-2.0` >> > ``` >> > Some iterations are needed before having the segfaults: >> > while ./a.out; do echo -n "."; done; >> > ``` >> > Versions: >> > gcc (Debian 4.9.1-19) 4.9.1 >> > guile (GNU Guile) 2.0.11.20-4338f (also tried from v2.0.11 tag) >> > libgc gc7_2d >> > ``` >> > Backtrace: >> > >> > #0 GC_generic_malloc (lb=524288, k=<optimized out>) at malloc.c:185 >> > #1 0x00007fcc535541ff in make_vm () at vm.c:704 >> > #2 0x00007fcc535542d5 in scm_the_vm () at vm.c:781 >> > #3 0x00007fcc534da600 in scm_call_4 (proc=0x1198c30, >> > arg1=arg1@entry=0x404, arg2=<optimized out>, arg3=<optimized out>, >> > arg4=<optimized out>) at eval.c:507 >> > #4 0x00007fcc53550d89 in scm_catch_with_pre_unwind_handler >> > (key=key@entry=0x404, thunk=<optimized out>, handler=<optimized out>, >> > pre_unwind_handler=<optimized out>) at throw.c:73 >> > #5 0x00007fcc53550e8f in scm_c_catch (tag=tag@entry=0x404, >> > body=body@entry=0x7fcc534d0c00 <c_body>, >> > body_data=body_data@entry=0x7fcc4d14cd50, >> > handler=handler@entry=0x7fcc534d0fe0 <c_handler>, >> > handler_data=handler_data@entry=0x7fcc4d14cd50 >> > , pre_unwind_handler=pre_unwind_handler@entry=0x7fcc534d0d90 >> > <pre_unwind_handler>, pre_unwind_handler_data=0x127cff0) at >> > throw.c:207 >> > #6 0x00007fcc534d1381 in scm_i_with_continuation_barrier >> > (body=body@entry=0x7fcc534d0c00 <c_body>, >> > body_data=body_data@entry=0x7fcc4d14cd50, >> > handler=handler@entry=0x7fcc534d0fe0 <c_handler>, >> > handler_data=handler_data@entry=0x7fcc4d14cd50, >> > pre_unwind_handler=pre_unwind_handler@entry=0x7fcc534d0d90 >> > <pre_unwind_handler>, pre_unwind_handler_data=0x127cff0) at >> > continuations.c:455 >> > #7 0x00007fcc534d1415 in scm_c_with_continuation_barrier >> > (func=<optimized out>, data=<optimized out>) at continuations.c:551 >> > #8 0x00007fcc5354e6dc in with_guile_and_parent >> > (base=base@entry=0x7fcc4d14cdb0, data=data@entry=0x7fcc4d14cde0) at >> > threads.c:906 >> > #9 0x00007fcc53222302 in GC_call_with_stack_base >> > (fn=fn@entry=0x7fcc5354e690 <with_guile_and_parent>, >> > arg=arg@entry=0x7fcc4d14cde0) at misc.c:1553 >> > #10 0x00007fcc5354eac8 in scm_i_with_guile_and_parent >> > (parent=<optimized out>, data=<optimized out>, func=<optimized out>) >> > at threads.c:949 >> > #11 scm_with_guile (func=<optimized out>, data=<optimized out>) at >> > threads.c:955 >> > #12 0x00000000004008bb in a_libguile_thread_ (unused=0x0) at >> > corruption_guile.c:11 >> > #13 0x00007fcc53226f6e in GC_inner_start_routine (sb=<error reading >> > variable: value has been optimized out>, arg=<error reading variable: >> > value has been optimized out>) at pthread_start.c:56 >> > #14 0x00007fcc53222302 in GC_call_with_stack_base (fn=<optimized out>, >> > arg=<optimized out>) at misc.c:1553 >> > #15 0x00007fcc52ff40a4 in start_thread (arg=0x7fcc4d14d700) at >> > pthread_create.c:309 >> > #16 0x00007fcc52d28ccd in clone () at . >> > ./sysdeps/unix/sysv/linux/x86_64/clone.S:111 >> > ``` >> > >> > I thought at first it was a problem with libgc but the given program >> > run without problems. >> > ``` >> > #include <stdlib.h> >> > #include <pthread.h> >> > #define GC_THREADS 1 >> > #define GC_NO_THREAD_REDIRECTS 1 >> > #include <gc/gc_mark.h> >> > #include <gc.h> >> > >> > static void *a_lib_gc_thread(void *unused) { >> > void *a; >> > for (int i = 0; i < 100; ++i) { >> > a = GC_generic_malloc(524288, 6); >> > } >> > GC_free(a); >> > } >> > >> > static void do_mallocs(void) { >> > void *a[100]; >> > for (int i = 0; i < 100; ++i) { >> > a[i] = malloc(356); >> > } >> > for (int i = 0; i < 100; ++i) { >> > free(a[i]); >> > } >> > } >> > >> > int main(int argc, char *argv[]) { >> > pthread_t pth[10]; >> > for (int i = 0; i < 10; ++i) { >> > GC_pthread_create(pth + i, NULL, a_lib_gc_thread, NULL); >> > } >> > do_mallocs(); >> > for (int i = 0; i < 10; ++i) { >> > GC_pthread_join(pth[i], NULL); >> > } >> > return 0; >> > } >> > ``` >> > I also tried to replace malloc by scm_malloc with no luck. >> > >> > Regards, Anthonin >> > > [-- Attachment #2: Type: text/html, Size: 60459 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#19523: Segfault when creating thread with scm_with_guile 2015-01-06 14:27 bug#19523: Segfault when creating thread with scm_with_guile Anthonin Bonnefoy 2016-06-22 21:27 ` Andy Wingo @ 2017-02-28 12:16 ` Andy Wingo 2017-02-28 12:18 ` Andy Wingo 2 siblings, 0 replies; 6+ messages in thread From: Andy Wingo @ 2017-02-28 12:16 UTC (permalink / raw) To: Anthonin Bonnefoy; +Cc: 19523 Hi, On Tue 06 Jan 2015 15:27, Anthonin Bonnefoy <anthonin.bonnefoy@securactive.net> writes: > Example program: > ``` > #include <stdlib.h> > #include <pthread.h> > #include <libguile.h> I had to add <libguile/bdw-gc.h> to this to get it to compile on 2.2. I wonder if that's a problem? Anyway it segfaults directly on 2.2: [Switching to Thread 0x7ffff44d1700 (LWP 8284)] 0x00007ffff785f9ab in return_freelists () from /gnu/store/y8ppqsxiki39n4mqpb4mab6bgwqsnnp7-libgc-7.4.2/lib/libgc.so.1 (gdb) bt #0 0x00007ffff785f9ab in return_freelists () from /gnu/store/y8ppqsxiki39n4mqpb4mab6bgwqsnnp7-libgc-7.4.2/lib/libgc.so.1 #1 0x00007ffff785fad8 in GC_destroy_thread_local () from /gnu/store/y8ppqsxiki39n4mqpb4mab6bgwqsnnp7-libgc-7.4.2/lib/libgc.so.1 #2 0x00007ffff7861c4d in GC_unregister_my_thread_inner () from /gnu/store/y8ppqsxiki39n4mqpb4mab6bgwqsnnp7-libgc-7.4.2/lib/libgc.so.1 #3 0x00007ffff7862291 in GC_unregister_my_thread () from /gnu/store/y8ppqsxiki39n4mqpb4mab6bgwqsnnp7-libgc-7.4.2/lib/libgc.so.1 #4 0x00007ffff74134c9 in __nptl_deallocate_tsd () at pthread_create.c:175 #5 0x00007ffff74145ba in __nptl_deallocate_tsd () at pthread_create.c:326 #6 start_thread (arg=0x7ffff44d1700) at pthread_create.c:346 Looks like I am doubly unregistering the thread. After landing a fix, I can't repro the bug any more in master. I bet in 2.0, Guile is itself doing GC_unregister_my_thread() even though the GC_pthread_create should be handling that. Andy ^ permalink raw reply [flat|nested] 6+ messages in thread
* bug#19523: Segfault when creating thread with scm_with_guile 2015-01-06 14:27 bug#19523: Segfault when creating thread with scm_with_guile Anthonin Bonnefoy 2016-06-22 21:27 ` Andy Wingo 2017-02-28 12:16 ` Andy Wingo @ 2017-02-28 12:18 ` Andy Wingo 2 siblings, 0 replies; 6+ messages in thread From: Andy Wingo @ 2017-02-28 12:18 UTC (permalink / raw) To: 19523-done Marking as done in 2.2. Hard to fix in 2.0 though :/ Andy ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2017-02-28 12:18 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-01-06 14:27 bug#19523: Segfault when creating thread with scm_with_guile Anthonin Bonnefoy 2016-06-22 21:27 ` Andy Wingo 2016-06-23 6:43 ` Anthonin Bonnefoy 2016-06-23 8:19 ` Anthonin Bonnefoy 2017-02-28 12:16 ` Andy Wingo 2017-02-28 12:18 ` Andy Wingo
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).