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>