If I remove 127.0.0.1 allow,RELAYCLIENT
from etc/smtpaccess/default (and call makesmtpaccess) I can reproduce the error from the local system. I guess that is an improvement or localization of the problem at least.
What other gdbm files would courieresmtpd be accessing?
courieresmtpd doesn't access this file. The syslog entries prefixed by 'courieresmtpd' in this case really come from couriertcpd, which is the one that opens the smtpaccess file. All standard error from this instance of couriertcpd, and its children, gets logged with the 'courieresmtpd' prefix, since - naturally - couriercpd forks and runs courieresmtpd.
$ strings libgdbm.so.2 | grep 'init cache' couldn't init cache
This error message actually comes from the bowels of the libgdbm library itself. Something seriously is going wrong in there.
After running makesmtpaccess, try running 'esmtpd stop' then 'esmtpd start', to see if that fixes it.
There's been one report that updating gdbm files that reside on an NFS volume fails. If you're using NFS, that's it. Move the etc directory to a local disk.
pgp00000.pgp
Description: PGP signature
