Comment 4 for bug 135038

Revision history for this message
Daniel Mueller (ubuntu-danm) wrote :

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.

bye,
Daniel