Date: Fri, 20 Jan 2006 01:01:18 +0900 From: SANETO Takanori <sanewo@ba2.so-net.ne.jp> To: Jason Evans <jasone@freebsd.org> Cc: freebsd@newmillennium.net.au, freebsd-current@FreeBSD.org, robin@isometry.net Subject: Re: Malloc bugs exhibited in ports/mail/dovecot Message-ID: <43CFB7CE.4090402@ba2.so-net.ne.jp> In-Reply-To: <6A234191-C4DA-4E1B-BB4D-1F3F8043DDA9@freebsd.org> 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>
next in thread | previous in thread | raw e-mail | index | archive | help
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 >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?43CFB7CE.4090402>