I can confirm this behavior. It appears on my (brand-new!) Ubuntu "gutsy" server as well. (The server struggles with about 10 SMTP connections per minute). Every night between 1:00am and 7:00am postgrey dies:
Oct 1 02:44:04 x postgrey[x]: cleaning up old logs...
Oct 1 02:44:04 x postgrey[x]: cleaning up old entries...
Oct 1 02:44:04 x postgrey[x]: cleaning main database finished. before: x, after: x
Oct 1 02:44:04 x postgrey[x]: fatal: Can't call method "txn_commit" on an undefined value at /usr/sbin/postgrey line 223.
My server does not run any cron-daemon/logrotate at all. After a short look in postgrey's source I found this at line 160:
[..]
# remove old keys
# this is very expensive: We might refuse to speak to postfix for too
# long, after which clients will start getting "450 Server configuration
# problem" errors... do it only during the night and only if at least one
# day has passed
my $hour = (localtime($now))[2];
if($hour > 1 and $hour < 7 and
$now - $self->{postgrey}{last_maint_keys} >= 82800)
[..]
I would say it is an error in postgrey's do_maintenance function. The newest version of postgrey (1.31) runs very stable on my other mailhosts (OpenSuSE). I have just replaced the exiting /usr/sbin/postgrey with v.1.31 (and copied the needed configuration files to /etc/postfix). If the error occurs again it has probably something to do with the perl-db modules. I'll report any results here.
I can confirm this behavior. It appears on my (brand-new!) Ubuntu "gutsy" server as well. (The server struggles with about 10 SMTP connections per minute). Every night between 1:00am and 7:00am postgrey dies:
Oct 1 02:44:04 x postgrey[x]: cleaning up old logs...
Oct 1 02:44:04 x postgrey[x]: cleaning up old entries...
Oct 1 02:44:04 x postgrey[x]: cleaning main database finished. before: x, after: x
Oct 1 02:44:04 x postgrey[x]: fatal: Can't call method "txn_commit" on an undefined value at /usr/sbin/postgrey line 223.
My server does not run any cron-daemon/ logrotate at all. After a short look in postgrey's source I found this at line 160:
[..] $now))[ 2]; {postgrey} {last_maint_ keys} >= 82800)
# remove old keys
# this is very expensive: We might refuse to speak to postfix for too
# long, after which clients will start getting "450 Server configuration
# problem" errors... do it only during the night and only if at least one
# day has passed
my $hour = (localtime(
if($hour > 1 and $hour < 7 and
$now - $self->
[..]
I would say it is an error in postgrey's do_maintenance function. The newest version of postgrey (1.31) runs very stable on my other mailhosts (OpenSuSE). I have just replaced the exiting /usr/sbin/postgrey with v.1.31 (and copied the needed configuration files to /etc/postfix). If the error occurs again it has probably something to do with the perl-db modules. I'll report any results here.
bye,
Daniel