Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 2 Feb 2005 13:11:14 -0500
From:      David Schultz <das@FreeBSD.ORG>
To:        "Gergely, KOVACS (VBuster)" <gkovacs@virusbuster.hu>
Cc:        freebsd-bugs@FreeBSD.ORG
Subject:   Re: malloc/free deadlock bug
Message-ID:  <20050202181114.GA25556@VARK.MIT.EDU>
In-Reply-To: <1107253628.925.42.camel@dev-0012>
References:  <1107253628.925.42.camel@dev-0012>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Feb 01, 2005, Gergely, KOVACS (VBuster) wrote:
> The hardware environment is a dual Xeon 3Ghz, and the OS is FreeBSD 5.3
> with SMP enabled kernel.
> 
> The problem is that around in every 10th hour (100000 mail process) a
> deadlock has been happened. According to gdb all threads are waiting in
> malloc's, or free's mutex handler function:
> 
> #0  0x280b3c93 in pthread_mutexattr_init () from
> /usr/lib/libpthread.so.1
> #1  0x280b3be5 in pthread_mutexattr_init () from
> /usr/lib/libpthread.so.1
> #2  0x280b04bb in _pthread_mutex_trylock () from
> /usr/lib/libpthread.so.1
> #3  0x280b15e7 in pthread_mutex_lock () from /usr/lib/libpthread.so.1
> #4  0x280a9b87 in _spinlock () from /usr/lib/libpthread.so.1
> #5  0x2811c4a1 in ldexp () from /lib/libc.so.5
                    ^^^^^
> #6  0x2811c6d8 in malloc () from /lib/libc.so.5

Something is fishy about this backtrace; malloc() doesn't call
ldexp(), and ldexp() doesn't call _spinlock().  Perhaps you're
using the wrong debugging symbols, or there's some sort of signal
handler weirdness or gdb bug at fault here.  (BTW, a full
backtrace from an unstripped libc might be more helpful.)



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