From owner-freebsd-current@FreeBSD.ORG Thu Jan 19 16:01:33 2006 Return-Path: X-Original-To: freebsd-current@FreeBSD.org Delivered-To: freebsd-current@FreeBSD.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2EC6C16A41F; Thu, 19 Jan 2006 16:01:33 +0000 (GMT) (envelope-from sanewo@ba2.so-net.ne.jp) Received: from mx53.ms.so-net.ne.jp (mx53.ms.so-net.ne.jp [202.238.83.3]) by mx1.FreeBSD.org (Postfix) with ESMTP id B066A43D45; Thu, 19 Jan 2006 16:01:32 +0000 (GMT) (envelope-from sanewo@ba2.so-net.ne.jp) Received: from [127.0.0.1] (p622944.tkyoac00.ap.so-net.ne.jp [219.98.41.68]) by mx53.ms.so-net.ne.jp with ESMTP id k0JG1Ibe006315; Fri, 20 Jan 2006 01:01:29 +0900 (JST) Message-ID: <43CFB7CE.4090402@ba2.so-net.ne.jp> Date: Fri, 20 Jan 2006 01:01:18 +0900 From: SANETO Takanori User-Agent: Thunderbird 1.5 (Windows/20051201) MIME-Version: 1.0 To: Jason Evans References: <200601161150.k0GBoamk010563@locutus.newmillennium.net.au> <91B40C65-A11B-427E-B352-8B6EF8A55864@freebsd.org> <43CECA2C.6030400@ba2.so-net.ne.jp> <6A234191-C4DA-4E1B-BB4D-1F3F8043DDA9@freebsd.org> In-Reply-To: <6A234191-C4DA-4E1B-BB4D-1F3F8043DDA9@freebsd.org> X-Enigmail-Version: 0.94.0.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: freebsd@newmillennium.net.au, freebsd-current@FreeBSD.org, robin@isometry.net Subject: Re: Malloc bugs exhibited in ports/mail/dovecot X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Jan 2006 16:01:33 -0000 Thanks for your analysis. According to your advice, instead of patching the code, I could make dovecot run by setting login_process_size = 64 in /usr/local/etc/dovecot.conf. Regards, SANETO Takanori Jason Evans wrote: > On Jan 18, 2006, at 3:07 PM, SANETO Takanori wrote: >> I experienced this using malloc.c 1.95. >> assert("arenas != NULL") failed in malloc.c:4519. >> >> To reproduce, build mail/dovecot (under either version of malloc.c) and >> run it under libc of malloc.c rev 1.95. imap-login and pop3-login dump >> core. >> >> My environment is: >> FreeBSD 7-CURRENT as of 2006/01/15 (+latest libc including malloc.c 1.95) >> in VMware 4.5.3 >> sysctl hw.ncpu = 1 >> >> % ldd /usr/local/libexec/dovecot/imap-login >> /usr/local/libexec/dovecot/imap-login: >> libssl.so.4 => /usr/lib/libssl.so.4 (0x2809b000) >> libcrypto.so.4 => /lib/libcrypto.so.4 (0x280cc000) >> libc.so.6 => /lib/libc.so.6 (0x281d2000) > > This is due to: > > 1) A bug in malloc. If malloc() fails the first time it is called, this > causes a fatal error rather than returning NULL. This is fixed in > revision 1.96 of malloc.c. > > 2) Low resource limits set by dovecot. malloc extends the heap in > increments of 16 MB, and dovecot's resource limits are set low enough > that malloc immediately fails. The attached patch to the dovecot port > works around this. Another reasonable workaround would be to define > _malloc_options to be "k" (or "kk", or ...) in the dovecot source code. > A short term (but not generally recommended, since it affects all > programs) workaround would be to set /etc/malloc.conf to 'k'. > > Thanks, > Jason >