[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: thread assert with 1.8.2
From: |
Greg Troxel |
Subject: |
Re: thread assert with 1.8.2 |
Date: |
Wed, 22 Aug 2007 19:39:09 -0400 |
User-agent: |
Gnus/5.110007 (No Gnus v0.7) Emacs/22.1 (berkeley-unix) |
I ran this again (still with 1.8.2) and got a core dump. There were 4
threads, and #2 was the one that failed.
static scm_t_guile_ticket
scm_leave_guile ()
{
scm_i_thread *t = suspend ();
scm_i_pthread_mutex_unlock (&t->heap_mutex);
return (scm_t_guile_ticket) t;
}
So this is trying to unlock heap_mutex.
There are lots of comments in the course about how this is trouble.
(gdb) bt
#0 0xbba76c27 in _exit () from /usr/lib/libc.so.12
#1 0xbbaa2fd7 in pthread__errorfunc () from /usr/lib/libpthread.so.0
#2 0xbbaa0ddd in pthread_mutex_unlock () from /usr/lib/libpthread.so.0
#3 0xbbb98760 in scm_leave_guile ()
from
/usr/home/gdt/NetBSD-current/pkgsrc/lang/guile/work/guile-1.8.2/libguile/.libs/libguile.so.17
#4 0xbbb99c52 in on_thread_exit ()
from
/usr/home/gdt/NetBSD-current/pkgsrc/lang/guile/work/guile-1.8.2/libguile/.libs/libguile.so.17
#5 0xbba9fd9c in pthread__destroy_tsd () from /usr/lib/libpthread.so.0
#6 0xbbaa4465 in pthread_exit () from /usr/lib/libpthread.so.0
#7 0xbbaa47a8 in pthread_setcancelstate () from /usr/lib/libpthread.so.0
#8 0xbb9f7700 in swapcontext () from /usr/lib/libc.so.12
with 1.8.1, I get the same thing.
Running threads.test
guile: Error detected by libpthread: Unlocking unlocked mutex.
Detected by file
"/usr/home/gdt/NetBSD-current/src/lib/libpthread/pthread_mutex.c", line 357,
function "pthread_mutex_unlock".
See pthread(3) for information.
[1] Abort trap (core dumped) ${dir}${tst}
FAIL: check-guile
(gdb) t 2
[Switching to thread 2 (process 221227)]#0 0xbb9d3e67 in kill ()
from /usr/lib/libc.so.12
(gdb) bt
#0 0xbb9d3e67 in kill () from /usr/lib/libc.so.12
#1 0xbbaa2fcb in pthread__errorfunc () from /usr/lib/libpthread.so.0
#2 0xbbaa0ddd in pthread_mutex_unlock () from /usr/lib/libpthread.so.0
#3 0xbbb98488 in scm_leave_guile ()
from
/usr/home/gdt/NetBSD-current/pkgsrc/lang/guile/work/guile-1.8.1/libguile/.libs/libguile.so.17
#4 0xbbb9997a in on_thread_exit ()
from
/usr/home/gdt/NetBSD-current/pkgsrc/lang/guile/work/guile-1.8.1/libguile/.libs/libguile.so.17
#5 0xbba9fd9c in pthread__destroy_tsd () from /usr/lib/libpthread.so.0
#6 0xbbaa4465 in pthread_exit () from /usr/lib/libpthread.so.0
#7 0xbbaa47a8 in pthread_setcancelstate () from /usr/lib/libpthread.so.0
#8 0xbb9f7700 in swapcontext () from /usr/lib/libc.so.12
so it seems the same.
1.8.0 does not build easily (some of the pkgsrc patches don't apply, and
it fails without them).