Hi all, This is about the postgrey hang that I talked about previously. Really Annoying. (And I'm still happily running postgrey without any problems on my own machine, of course...)
From: Jose Carlos Garcia Sogo <[EMAIL PROTECTED]> > today it happened again and I could read in /var/log/syslog the following: > Jan 14 03:06:03 aragorn postgrey[3477]: cleaning up old logs... > Jan 14 03:06:04 aragorn postgrey[3477]: cleaning up old entries... > Jan 14 03:06:04 aragorn postgrey[3477]: fatal: Can't call method > "txn_commit" on an undefined value at /usr/sbin/postgrey line 199. Jose, can you please confirm the versions of the postgrey, libberkeleydb-perl, libdb4.3, libdb4.4 (depending on the libberkeleydb-perl verison either of those is used) and perl Debian packages that are installed on your system? Anything special about your system? Xen, vmware or whatever? NFS or some other network based filesystem on the partition where the database is located? Just to be safe: below is the diff between postgrey 1.27 and the Debian version. I changed config file locations and it runs as group postgrey instead of nogroup. I don't think there is anything that could trigger this behaviour. ======== --- 1.27/postgrey 2007-01-18 08:56:16.000000000 +0100 +++ 1.27-4/postgrey 2007-01-18 08:58:21.000000000 +0100 @@ -441,8 +441,8 @@ port => [ $opt{inet} ? $opt{inet} : $opt{unix}."|unix" ], proto => $opt{inet} ? 'tcp' : 'unix', user => $opt{user} || 'postgrey', - group => $opt{group} || 'nogroup', - dbdir => $opt{dbdir} || '/var/spool/postfix/postgrey', + group => $opt{group} || 'postgrey', + dbdir => $opt{dbdir} || '/var/lib/postgrey', setsid => $opt{daemonize} ? 1 : undef, pid_file => $opt{daemonize} ? $opt{pidfile} : undef, log_level => $opt{verbose} ? 4 : 2, @@ -453,7 +453,7 @@ }, postgrey => { delay => $opt{delay} || 300, - dbdir => $opt{dbdir} || '/var/spool/postfix/postgrey', + dbdir => $opt{dbdir} || '/var/lib/postgrey', max_age => $opt{'max-age'} || 35, last_maint => time, last_maint_keys => 0, # do it on the first night @@ -465,10 +465,11 @@ greylist_action => $opt{'greylist-action'} || 'DEFER_IF_PERMIT', greylist_text => $opt{'greylist-text'} || 'Greylisted, see http://isg.ee.ethz.ch/tools/postgrey/help/%r.html', whitelist_clients_files => $opt{'whitelist-clients'} || - [ '/etc/postfix/postgrey_whitelist_clients' , - '/etc/postfix/postgrey_whitelist_clients.local' ], + [ '/etc/postgrey/whitelist_clients' , + '/etc/postgrey/whitelist_clients.local' ], whitelist_recipients_files => $opt{'whitelist-recipients'} || - [ '/etc/postfix/postgrey_whitelist_recipients' ], + [ '/etc/postgrey/whitelist_recipients' , + '/etc/postgrey/whitelist_recipients.local' ], privacy => defined $opt{'privacy'}, hostname => defined $opt{hostname} ? $opt{hostname} : hostname, exim => defined $opt{'exim'}, @@ -623,8 +624,8 @@ -d, --daemonize run in the background --pidfile=PATH put daemon pid into this file --user=USER run as USER (default: postgrey) - --group=GROUP run as group GROUP (default: nogroup) - --dbdir=PATH put db files in PATH (default: /var/spool/postfix/postgrey) + --group=GROUP run as group GROUP (default: postgrey) + --dbdir=PATH put db files in PATH (default: /var/lib/postgrey) --delay=N greylist for N seconds (default: 300) --max-age=N delete entries older than N days since the last time that they have been seen (default: 35) @@ -635,8 +636,8 @@ (default: Greylisted + help url, see below) --lookup-by-subnet strip the last 8 bits from IP addresses (default) --lookup-by-host do not strip the last 8 bits from IP addresses - --whitelist-clients=FILE default: /etc/postfix/postgrey_whitelist_clients - --whitelist-recipients=FILE default: /etc/postfix/postgrey_whitelist_recipients + --whitelist-clients=FILE default: /etc/postgrey/whitelist_clients + --whitelist-recipients=FILE default: /etc/postgrey/whitelist_recipients --auto-whitelist-clients=N whitelist host after first successful delievery N is the minimal count of mails before a client is whitelisted (turned on by default with value 5) @@ -646,8 +647,9 @@ --exim don't reuse a socket for more than one query (exim compatible) Note that the --whitelist-x options can be specified multiple times, - and that per default /etc/postfix/postgrey_whitelist_clients.local is - also read, so that you can put there local entries. + and that per default /etc/postgrey/whitelist_clients.local and + /etc/postgrey/whitelist_recipients.local are also read, so that you can put + there local entries. =head1 DESCRIPTION @@ -673,13 +675,13 @@ =item * Create a C<postgrey> user and the directory where to put the database I<dbdir> -(default: C</var/spool/postfix/postgrey>) +(default: C</var/lib/postgrey>) =item * Write an init script to start postgrey at boot and start it. Like this for example: - postgrey --inet=10023 -d + postgrey --inet=60000 -d =item * @@ -689,16 +691,16 @@ permit_mynetworks ... reject_unauth_destination - check_policy_service inet:127.0.0.1:10023 + check_policy_service inet:127.0.0.1:60000 =item * -Install the provided postgrey_whitelist_clients and -postgrey_whitelist_recipients in /etc/postfix. +Install the provided whitelist_clients and whitelist_recipients in +/etc/postgrey. =item * -Put in /etc/postfix/postgrey_whitelist_recipients users that do not want +Put in /etc/postgrey/whitelist_recipients users that do not want greylisting. =back @@ -709,9 +711,10 @@ which no greylisting should be done. Per default postgrey will read the following files: - /etc/postfix/postgrey_whitelist_clients - /etc/postfix/postgrey_whitelist_clients.local - /etc/postfix/postgrey_whitelist_recipients + /etc/postgrey/whitelist_clients + /etc/postgrey/whitelist_clients.local + /etc/postgrey/whitelist_recipients + /etc/postgrey/whitelist_recipients.local You can specify alternative paths with the --whitelist-x options. ======== -- Today is Pungenday, the 18th day of Chaos in the YOLD 3173
pgp1v2Qo3TzmB.pgp
Description: PGP signature