Package: spamassassin
Version: 3.3.0-2
Severity: important

Ever since spamassassin 3.3.0 appeared in testing, I have found that spamd
periodically loses the ability to check ident.  Since spamd treats a failed
connect to an ident server as an authentication error, it passes the mail
through unchecked (and I'm waking up most mornings to a couple hundred pill
spams).  :-)

Two sets of logs follow, one for a normal spam delivery, and one for an
abnormal delivery.  In these logs, $Net::Ident::debug is set, and the "dbg:
ident: FOO" lines are extra debugging lines I added to spamd.  I am running
spamd from the command line to be able to capture the Net::Ident debug
output.

As you can see in the abnormal delivery, exim successfully connects to the
local ident server, but for some reason spamassassin doesn't ("connect
failed: 115")--however, oident shows an incoming connection attempt (but no
query).

* This happens with both oidentd and bidentd.
* Exim never becomes unable to connect to ident at any time.
* Restarting spamd always fixes the problem for a while.
* The problem starts again, randomly, after anywhere from a few hours up to
  a day.
* The problem doesn't start at any predictable time of the day.
* The problem doesn't start after the update cron job runs.
* There are no rules in iptables that would explain this connect failure,
  such as use of the connlimit match extension.
* /etc/spamassassin/* files are unchanged from the package.
* /etc/default/spamassassin is the following:

ENABLED=1
OPTIONS="--create-prefs --max-children 5 --helper-home-dir --allow-tell 
--auth-ident -D ident"
PIDFILE="/var/run/spamd.pid"
CRON=1

I'm using --auth-ident and --allow-tell so that my users can use SquirrelMail 
with 
squirrelmail-spam-buttons to directly train their filters.

===============
Normal delivery
===============

--- exim4/mainlog ---

2010-03-15 09:09:40 1NrAzE-0006hu-3l <= magnet...@worldatlas.com H=localhost 
(MYDOMAIN.NET) [127.0.0.1] U=troy P=esmtp S=2648
2010-03-15 09:09:45 1NrAzE-0006hu-3l => troy <t...@localhost> R=procmail 
T=procmail_pipe
2010-03-15 09:09:45 1NrAzE-0006hu-3l Completed

--- syslog ----

Mar 15 09:09:40 tiferet oidentd[25787]: Connection from localhost 
(127.0.0.1):54021
Mar 15 09:09:40 tiferet oidentd[25787]: [localhost] Successful lookup: 48692 , 
25 : troy (troy)
Mar 15 09:09:40 tiferet spamd[23355]: spamd: connection from localhost 
[127.0.0.1] at port 39727
Mar 15 09:09:40 tiferet oidentd[25794]: Connection from localhost 
(127.0.0.1):60009
Mar 15 09:09:40 tiferet oidentd[25794]: [localhost] Successful lookup: 39727 , 
783 : troy (troy)
Mar 15 09:09:40 tiferet spamd[23355]: ident: FOO username = troy
Mar 15 09:09:40 tiferet spamd[23355]: ident: FOO ident_timeout = 5
Mar 15 09:09:40 tiferet spamd[23355]: ident: FOO ident_username = troy
Mar 15 09:09:40 tiferet spamd[23355]: ident: FOO dn = troy
Mar 15 09:09:40 tiferet spamd[23355]: ident: ident_username = troy, 
spamc_username = troy
Mar 15 09:09:40 tiferet spamd[23355]: spamd: setuid to troy succeeded
Mar 15 09:09:40 tiferet spamd[23355]: spamd: processing message 
<e1nraze-0006hu...@mydomain.net> for troy:1000
Mar 15 09:09:45 tiferet spamd[23355]: spamd: identified spam (25.0/6.0) for 
troy:1000 in 5.3 seconds, 2805 bytes.
Mar 15 09:09:45 tiferet spamd[23355]: spamd: result: Y 25 - 
BAYES_80,DIGEST_MULTIPLE,HK_NAME_DRUGS,HTML_IMAGE_ONLY_20,HTML_IMAGE_RATIO_02,HTML_MESSAGE,HTML_SHORT_LINK_IMG_3,MIME_HTML_ONLY,MSGID_FROM_MTA_HEADER,PYZOR_CHECK,RAZOR2_CF_RANGE_51_100,RAZOR2_CF_RANGE_E8_51_100,RAZOR2_CHECK,RCVD_IN_BRBL_LASTEXT,RCVD_IN_PBL,RCVD_IN_PSBL,RCVD_IN_XBL,RDNS_DYNAMIC,SPF_FAIL,T_SURBL_MULTI1,URIBL_AB_SURBL,URIBL_JP_SURBL
 
scantime=5.3,size=2805,user=troy,uid=1000,required_score=6.0,rhost=localhost,raddr=127.0.0.1,rport=39727,mid=<e1nraze-0006hu...@mydomain.net>,bayes=0.836190,autolearn=spam
Mar 15 09:09:45 tiferet spamd[22919]: prefork: child states: II

--- spamd output ---

Mar 15 09:09:40.245 [23355] info: spamd: connection from localhost [127.0.0.1] 
at port 39727
Net::Ident::lookup fh=IO::Socket::INET6=GLOB(0xa9c1438), timeout=5
Net::Ident::new fh=IO::Socket::INET6=GLOB(0xa9c1438), timeout=5
Net::Ident::newFromInAddr localaddr=127.0.0.1:783, remoteaddr=127.0.0.1:39727, 
timeout=5
Net::Ident::username
Net::Ident::ready blocking=true
Net::Ident::query
Net::Ident::ready received: 39727,783:USERID:UNIX:troy
Net::Ident::username returns:
userid = troy
opsys = UNIX
error = <undef>
Mar 15 09:09:40.247 [23355] dbg: ident: FOO username = troy
Mar 15 09:09:40.248 [23355] dbg: ident: FOO ident_timeout = 5
Mar 15 09:09:40.248 [23355] dbg: ident: FOO ident_username = troy
Mar 15 09:09:40.248 [23355] dbg: ident: FOO dn = troy
Mar 15 09:09:40.249 [23355] dbg: ident: ident_username = troy, spamc_username = 
troy
Mar 15 09:09:40.249 [23355] info: spamd: setuid to troy succeeded
Mar 15 09:09:40.257 [23355] info: spamd: processing message 
<e1nraze-0006hu...@mydomain.net> for troy:1000
Mar 15 09:09:45.530 [23355] info: spamd: identified spam (25.0/6.0) for 
troy:1000 in 5.3 seconds, 2805 bytes.
Mar 15 09:09:45.531 [23355] info: spamd: result: Y 25 - 
BAYES_80,DIGEST_MULTIPLE,HK_NAME_DRUGS,HTML_IMAGE_ONLY_20,HTML_IMAGE_RATIO_02,HTML_MESSAGE,HTML_SHORT_LINK_IMG_3,MIME_HTML_ONLY,MSGID_FROM_MTA_HEADER,PYZOR_CHECK,RAZOR2_CF_RANGE_51_100,RAZOR2_CF_RANGE_E8_51_100,RAZOR2_CHECK,RCVD_IN_BRBL_LASTEXT,RCVD_IN_PBL,RCVD_IN_PSBL,RCVD_IN_XBL,RDNS_DYNAMIC,SPF_FAIL,T_SURBL_MULTI1,URIBL_AB_SURBL,URIBL_JP_SURBL
 
scantime=5.3,size=2805,user=troy,uid=1000,required_score=6.0,rhost=localhost,raddr=127.0.0.1,rport=39727,mid=<e1nraze-0006hu...@mydomain.net>,bayes=0.836190,autolearn=spam
Mar 15 09:09:45.609 [22919] info: prefork: child states: II

=================
Abnormal Delivery
=================

--- exim4/mainlog ---

2010-03-15 13:31:29 1NrF4b-0008Ep-Jm <= tapi...@galiciajewishmuseum.org 
H=localhost (MYDOMAIN.NET) [127.0.0.1] U=troy P=esmtp S=6187 
id=002a01cac42a$a123d0f0$e36b72...@org
2010-03-15 13:31:29 1NrF4b-0008Ep-Jm => troy <t...@localhost> R=procmail 
T=procmail_pipe
2010-03-15 13:31:29 1NrF4b-0008Ep-Jm Completed

--- syslog ---

Mar 15 13:31:29 tiferet oidentd[31672]: Connection from localhost 
(127.0.0.1):53475
Mar 15 13:31:29 tiferet oidentd[31672]: [localhost] Successful lookup: 59942 , 
25 : troy (troy)
Mar 15 13:31:29 tiferet spamd[23355]: spamd: connection from localhost 
[127.0.0.1] at port 54475
Mar 15 13:31:29 tiferet spamd[23355]: ident: FOO username = troy
Mar 15 13:31:29 tiferet oidentd[31679]: Connection from localhost 
(127.0.0.1):37676
Mar 15 13:31:29 tiferet spamd[23355]: ident: FOO ident_timeout = 5
Mar 15 13:31:29 tiferet spamd[23355]: Use of uninitialized value 
$ident_username in concatenation (.) or string at /usr/sbin/spamd line 2058, 
<GEN733> line 2.
Mar 15 13:31:29 tiferet spamd[23355]: ident: FOO ident_username =
Mar 15 13:31:29 tiferet spamd[23355]: ident: FOO dn = NONE
Mar 15 13:31:29 tiferet spamd[23355]: ident: ident_username = NONE, 
spamc_username = troy
Mar 15 13:31:29 tiferet spamd[23355]: spamd: ident username (NONE) does not 
match spamc username (troy)
Mar 15 13:31:29 tiferet spamd[22919]: prefork: child states: II

--- spamd output ---

Mar 15 13:31:29.745 [23355] info: spamd: connection from localhost [127.0.0.1] 
at port 54475
Net::Ident::lookup fh=IO::Socket::INET6=GLOB(0xa82f498), timeout=5
Net::Ident::new fh=IO::Socket::INET6=GLOB(0xa82f498), timeout=5
Net::Ident::newFromInAddr localaddr=127.0.0.1:783, remoteaddr=127.0.0.1:54475, 
timeout=5
Net::Ident::new: connect failed: 115
Net::Ident::username
Net::Ident::ready blocking=true
Net::Ident::query
Mar 15 13:31:29.747 [23355] dbg: ident: FOO username = troy
Mar 15 13:31:29.747 [23355] dbg: ident: FOO ident_timeout = 5
Mar 15 13:31:29.748 [23355] warn: Use of uninitialized value $ident_username in 
concatenation (.) or string at /usr/sbin/spamd line 2058, <GEN733> line 2.
Mar 15 13:31:29.748 [23355] dbg: ident: FOO ident_username =
Mar 15 13:31:29.749 [23355] dbg: ident: FOO dn = NONE
Mar 15 13:31:29.750 [23355] dbg: ident: ident_username = NONE, spamc_username = 
troy
Mar 15 13:31:29.750 [23355] info: spamd: ident username (NONE) does not match 
spamc username (troy)
Mar 15 13:31:29.829 [22919] info: prefork: child states: II





-- System Information:
Debian Release: squeeze/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: i386 (i686)

Kernel: Linux 2.6.32-trunk-686 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages spamassassin depends on:
pn  libarchive-tar-perl         <none>       (no description available)
ii  libdigest-sha1-perl         2.12-1       NIST SHA-1 message digest algorith
ii  libhtml-parser-perl         3.64-1       collection of modules that parse H
ii  libnet-dns-perl             0.65-1       Perform DNS queries from a Perl sc
ii  libnetaddr-ip-perl          4.024+dfsg-1 IP address manipulation module
ii  libsocket6-perl             0.23-1       Perl extensions for IPv6
ii  libsys-hostname-long-perl   1.4-2        Figure out the long (fully-qualifi
ii  libwww-perl                 5.834-1      Perl HTTP/WWW client/server librar
ii  perl                        5.10.1-11    Larry Wall's Practical Extraction 
ii  perl-modules [libio-zlib-pe 5.10.1-11    Core Perl modules

Versions of packages spamassassin recommends:
ii  gcc                           4:4.4.2-3  The GNU C compiler
ii  gnupg                         1.4.10-2   GNU privacy guard - a free PGP rep
ii  libc6-dev                     2.10.2-6   Embedded GNU C Library: Developmen
ii  libio-socket-inet6-perl       2.54-1.1   Object interface for AF_INET6 doma
ii  libmail-spf-perl              2.007-1    Perl implementation of Sender Poli
ii  libsys-syslog-perl            0.27-1     Perl interface to the UNIX syslog(
ii  make                          3.81-7     An utility for Directing compilati
ii  perl [libsys-syslog-perl]     5.10.1-11  Larry Wall's Practical Extraction 
ii  re2c                          0.13.5-1   tool for generating fast C-based r
ii  spamc                         3.3.0-2    Client for SpamAssassin spam filte

Versions of packages spamassassin suggests:
ii  libcompress-zlib-perl         2.024-1    Transitional dummy package for Com
ii  libdbi-perl                   1.609-1    Perl Database Interface (DBI)
ii  libio-socket-ssl-perl         1.31-1     Perl module implementing object or
pn  libmail-dkim-perl             <none>     (no description available)
ii  libnet-ident-perl             1.20-5     lookup the username on the remote 
ii  perl [libcompress-zlib-perl]  5.10.1-11  Larry Wall's Practical Extraction 
ii  pyzor                         1:0.5.0-2  spam-catcher using a collaborative
ii  razor                         1:2.85-3   spam-catcher using a collaborative

-- no debconf information



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to