bug-guile
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Fwd: Guile licensing, also R6RS/ERR5RS


From: dma05
Subject: Re: Fwd: Guile licensing, also R6RS/ERR5RS
Date: Mon, 04 Feb 2008 02:00:14 +0100

Hey there,

I'm Magnus, Leonardo forwarded this mail 'ere to me so i could answer a bit 
more directly ;).

> From: "Leonardo Valeri Manera" <address@hidden>
> Date: 04.02.08 01:39:28
> To: Magnus <address@hidden>
> Subject: Fwd: Guile licensing, also R6RS/ERR5RS

> 
> ---------- Forwarded message ----------
> From: Neil Jerram <address@hidden>
> Date: 4 Feb 2008 00:31
> Subject: Re: Guile licensing, also R6RS/ERR5RS
> To: Leonardo Valeri Manera <address@hidden>
> Cc: address@hidden
> 
> 
> "Leonardo Valeri Manera" <address@hidden> writes:
> 
> > magnus gave me this backtrace
> >
> > "<jyujin> it's always in precisely this location:
> > /lib/libguile.so.17(scm_mark_locations+0x17)[0x2aaaae6192b7]"
> 
> Thanks, Leonardo.  Could you also say what version of Guile you're
> using, and provide or point us to the code needed to reproduce this?
> 
> Regards,
>         Neil
> 

I was using guile 1.8.3, and the issue seems to be related to creating lots of 
threads, using guile inside of them and then having the threads terminate. This 
code here will still occasinally crash: 
http://git.einit.org/?p=einit/core.git;a=blob;f=src/modules/module-scheme-guile.c;h=bc0b19449dd7ca3141e9a16b275ca71092370f55;hb=d20bf040f53a5669be7afc9edeffd92d4f2b2919

The original version spawned a new thread for each incoming event, and that 
crashed reliably about every 1k or so events. I tried to look into the bug a 
bit, and it seems like libguile tries to read the stack of all the threads 
(well, probably only those that used guile), and whenever a thread dies at an 
inconvenient time while the gc is running, things get all segfaulty. The 
condition is fairly rare now though. It /might/, however, also be an issue with 
gcc's pthreads. The box that i first found this issue on was running an amd64 
version of GNU/Linux, and this code never crashed on Darwin/ppc.

Something else that might be important (i wouldn't know): einit isn't linking 
to libguile directly, the code i linked to above is compiled into its own .so 
file, which in turn is linked against libguile, then einit only calls dlopen() 
on the resulting .so file.

Greetings,
Magnus Deininger

_____________________________________________________________________
Der WEB.DE SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
http://smartsurfer.web.de/?mc=100071&distributionid=000000000066





reply via email to

[Prev in Thread] Current Thread [Next in Thread]