guile-devel
[Top][All Lists]
Advanced

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

Re: Strange deadlocks in guile


From: Neil Jerram
Subject: Re: Strange deadlocks in guile
Date: Sat, 14 Mar 2009 11:40:12 +0000
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.2 (gnu/linux)

Stanislav Ievlev <address@hidden> writes:

> It's very strange but I see an only one thread. full Backtrace in attach.

That is indeed odd.  Are you using GDB, and the "info threads"
command, and it lists only one thread?

>     > #0  0x00002b4ba31b4004 in __lll_lock_wait () from /lib64/libpthread.so.0
>     > #1  0x00002b4ba31af944 in _L_lock_55 () from /lib64/libpthread.so.0
>     > #2  0x00002b4ba31af341 in pthread_mutex_lock () from /lib64/
>     libpthread.so.0
>     > #3  0x00002b4ba22f87dc in scm_i_thread_put_to_sleep () from /usr/lib64/
>     > libguile.so.17
>     > #4  0x00002b4ba22abfd9 in scm_i_gc () from /usr/lib64/libguile.so.17
>     > #5  0x00002b4ba22ac338 in scm_gc_for_newcell () from /usr/lib64/
>     libguile.so.17
>     > #6  0x00002b4ba22cc86f in scm_cons () from /usr/lib64/libguile.so.17

This backtrace indicates the GC thread trying to lock the "heap mutex"
of all other threads (however many there are), and blocking on one of
those.

(Or possibly the thread_admin_mutex.  Can you get line numbers and
match those against your source code, to see if the relevant line in
scm_i_thread_put_to_sleep is

      scm_i_pthread_mutex_lock (&thread_admin_mutex);

or

        scm_i_pthread_mutex_lock (&t->heap_mutex);

?)

This could happen if your application has another thread that is in
Guile mode but has blocked on something - e.g. select, read, locking
another mutex.  Is that possible?

Regards,
        Neil




reply via email to

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