Gordon Messmer writes:

Steve Shockley wrote:

courieresmtpd: submitclient: EOF from submit.
courieresmtpd: error,relay=66.133.182.167,msg="502 ESMTP command error",cmd: DATA
courieresmtpd: gdbm fatal: couldn't init cache
courieresmtpd: gdbm fatal: couldn't init cache

This problem has been reported a few times in the past, and I think I finally figured out why. I installed Courier on an OpenBSD box, today, to track it down, and noticed that the esmtpd script sets "ulimit -d 4096" by default. On OpenBSD, that's not enough.

When gdbm opens a file, it initializes a cache that's 100 elements long. Each element is a few bytes, individually, plus a bucket whose size is the value of the st_blksize reported by stat(). On OpenBSD x86, that's going to be 16k, whereas on Linux x86 it'll be 4k. As a result, gdbm's default cache size, per dbm file open, is about 1.6MB on OpenBSD, and just about 400k on Linux x86.

Since Courier's smtpd may open several dbm files simultaniously, OpenBSD systems, and possibly other non-Linux-x86 platforms, may run out of memory with the default ulimit restrictions.

So, Sam, would you consider increasing the default ULIMIT value for esmtpd?

Sounds fine to me. I'll set it to 16384. I'll even set it so that existing systems' configuration will remain untouched, only new installs will get the higher ulimit.


Attachment: pgpLsSqXHRwiv.pgp
Description: PGP signature

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
courier-users mailing list
[email protected]
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/courier-users

Reply via email to