Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 16 Sep 2004 18:43:26 +0000 (UTC)
From:      "Bjoern A. Zeeb" <bzeeb-lists@lists.zabbadoz.net>
To:        freebsd-threads@freebsd.org
Subject:   assert in _lock_acquire ?
Message-ID:  <Pine.BSF.4.53.0409151152200.16661@e0-0.zab2.int.zabbadoz.net>

next in thread | raw e-mail | index | archive | help
Hi,

I am using a global mutex to serialize a longer debugging
output amongst threads. As this is only used for internal
debugging builds where I really want to see everything
I do not care about performance etc.

Recently I ran into problems with that - getting a core dump
at the same place in this debugging function. It takes some
time but I can always reproduce it.

I have seen this the last weeks with at least HEAD/ULE and since
yesterday with RELENG_5/4BSD. The first debugging log where I can
find it is dated 20040802. At that time the machine must have
been running a 5-CURRENT from around 20040625.

So I finally built libpthread with
	env DEBUG_FLAGS=-g make all
and even linked with libpthread.a instead of using the shared lib.

Here's the relevant part of the backtrace:

------ cut -------
(gdb) bt full
#0  _lock_acquire (lck=0x38, lu=0x80da034, prio=56) at /u1/src/src/RELENG_5/compile-20040914-1630/lib/libpthread/sys/lock.c:168
        i = 135110708
        lval = 672675788
        __func__ = "_lock_acquire"
#1  0x08076151 in mutex_handoff (curthread=0x80ee000, mutex=0x80d8980) at /u1/src/src/RELENG_5/compile-20040914-1630/lib/libpthread/thread/thr_mutex.c:1586
        kmbx = (struct kse_mailbox *) 0x1
        pthread = (struct pthread *) 0x80d7b80
#2  0x08075166 in mutex_unlock_common (m=0x8092d6c, add_reference=0) at /u1/src/src/RELENG_5/compile-20040914-1630/lib/libpthread/thread/thr_mutex.c:1026
        curthread = (struct pthread *) 0x80ee000
        kmbx = (struct kse_mailbox *) 0x0
        ret = 0
#3  0x08074c24 in _pthread_mutex_unlock (m=0x8092d6c) at /u1/src/src/RELENG_5/compile-20040914-1630/lib/libpthread/thread/thr_mutex.c:879
No locals.
....
#9  0x0806ed84 in thread_start (curthread=0x80ee000, start_routine=0x806d62c <zzzzzz_listener_thread>, arg=0x0)
    at /u1/src/src/RELENG_5/compile-20040914-1630/lib/libpthread/thread/thr_create.c:342
No locals.
#10 0x2815dcbf in _ctx_start () from /lib/libc.so.5
No symbol table info available.
------ cut -------

it seems I am running into an assert() in _lock_acquire.

does this make any sense ?

-- 
Bjoern A. Zeeb				bzeeb at Zabbadoz dot NeT



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.53.0409151152200.16661>