unofficial mirror of bug-guile@gnu.org 
 help / color / mirror / Atom feed
* Re: Fwd: Guile licensing, also R6RS/ERR5RS
@ 2008-02-04  1:00 dma05
  0 siblings, 0 replies; only message in thread
From: dma05 @ 2008-02-04  1:00 UTC (permalink / raw)
  To: Neil Jerram; +Cc: bug-guile

Hey there,

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

> From: "Leonardo Valeri Manera" <l.valerimanera@gmail.com>
> Date: 04.02.08 01:39:28
> To: Magnus <dma05@web.de>
> Subject: Fwd: Guile licensing, also R6RS/ERR5RS

> 
> ---------- Forwarded message ----------
> From: Neil Jerram <neil@ossau.uklinux.net>
> Date: 4 Feb 2008 00:31
> Subject: Re: Guile licensing, also R6RS/ERR5RS
> To: Leonardo Valeri Manera <l.valerimanera@gmail.com>
> Cc: bug-guile@gnu.org
> 
> 
> "Leonardo Valeri Manera" <l.valerimanera@gmail.com> 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





^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-02-04  1:00 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-02-04  1:00 Fwd: Guile licensing, also R6RS/ERR5RS dma05

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).