assert in _lock_acquire ?

Bjoern A. Zeeb bzeeb-lists at lists.zabbadoz.net
Thu Sep 16 12:55:09 PDT 2004


On Thu, 16 Sep 2004, Daniel Eischen wrote:

> On Thu, 16 Sep 2004, Bjoern A. Zeeb wrote:
>
> > 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.
>
> Where did you introduce the global mutex?  In your application
> or in libpthread or libc sources?

application; initialized from main before any further threads started.


> > ------ 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
>
> The kse_mailbox has become corrupted.  If you are using %gs for anything,
> that could be the cause.  %gs is reserved for the threads libraries.

also lck=0x38 looked odd to me but this my be a result of corrupted
kmbx.

what is %gs btw ?

is there an (easy) way I can get to know when this happens ?

-- 
Bjoern A. Zeeb				bzeeb at Zabbadoz dot NeT


More information about the freebsd-threads mailing list