Hi,

On 05/03/13 03:26, Jeff Epler wrote:
> On Sun, Mar 03, 2013 at 12:20:57PM +0000, Steven Chamberlain wrote:
>>> #5  0x0000000800d21f2c in *__GI___libc_free (mem=<optimized out>) at 
>>> malloc.c:3736
>>>         ar_ptr = 0x800ff3240
>>>         p = <optimized out>
>>> #6  0x0000000800844a79 in gvFreeContext () from /usr/lib/libgvc.so.5
>>> No symbol table info available.
>>> #7  0x0000000000400fd8 in ?? ()
>>> No symbol table info available.
>>> #8  0x000000080389bf04 in __pthread_sighandler
> 
> As many of you are probably aware, it's not permitted in POSIX to call free()
> in signal handler context without some additional guarantees about what the
> interrupted function may be.

Okay, that would make sense!

It seemed to me that some other thread (not shown by gdb) had received
the signal and freed something the active thread was still using.
Sometimes it caused a segfault, and less often resulted in a hang somehow.

The SIGINT handler sounds buggy, and maybe not that useful (who needs a
half-rendered diagram?) and so it might be best to disable it, which
would fix http://bugs.debian.org/524408

> ... and in main():
>     signal(SIGINT, intr);


But this was probably unrelated to the cause of the hang seen on the
buildds (#701832).  That was hopefully fixed by disabling the relevant
code for now (which didn't seem useful either), with the patch in
http://bugs.debian.org/701832#53.

Regards,
-- 
Steven Chamberlain
ste...@pyro.eu.org


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to