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?


-------------------------------------------------------------------------
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