unofficial mirror of bug-guile@gnu.org 
 help / color / mirror / Atom feed
* 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).