Paul Wise writes: > Package: spamassassin > Version: 3.2.4-1 > Severity: normal > > I couldn't get spamassassin to start after upgrading to perl > 5.10. Srangely it works with -D enabled, but then doesn't let you stop > it. The issue seems to be a problem with sa-compile and a symbol removed > from perl: Perl_Tstack_sp_ptr. I was able to fix it by removing > body_0.so and then rerunning sa-compile. Some links I found with Google:
sa-compile output (including body_0.so etc.) is specific to the version of perl it was built with. The ABI for compiled perl XS modules changed between 5.8.x and 5.10.x. This is what caused the sa-compile output to become unloadable once you upgraded perl. We need to fix SpamAssassin to include part of the perl version string ("5.10" for 5.10.0, "5.8" for 5.8.x, etc.) in the pathname of the sa-compile output to avoid this, I think. In the meantime, deleting the /var/lib/spamassassin/compiled/ dir when you upgrade perl, and re-running sa-compile, will avoid this. this is now open upstream as https://issues.apache.org/SpamAssassin/show_bug.cgi?id=5899 . --j. > http://lists.mailscanner.info/pipermail/mailscanner/2008-February/081852.html > http://www.linux-archive.org/archlinux-development/26289-updated-perl-5-10-0-a.html > > Log of investigation: > > [EMAIL PROTECTED]:~# grep OPT /etc/default/spamassassin > OPTIONS="--create-prefs --max-children 5 --helper-home-dir" > [EMAIL PROTECTED]:~# /etc/init.d/spamassassin start > Starting SpamAssassin Mail Filter Daemon: Constant subroutine > IO::Socket::INET6::AF_INET6 redefined at /usr/share/perl/5.10/Exporter.pm > line 66. > at /usr/share/perl5/IO/Socket/INET6.pm line 16 > Prototype mismatch: sub IO::Socket::INET6::AF_INET6 () vs none at > /usr/share/perl/5.10/Exporter.pm line 66. > at /usr/share/perl5/IO/Socket/INET6.pm line 16 > Constant subroutine IO::Socket::INET6::PF_INET6 redefined at > /usr/share/perl/5.10/Exporter.pm line 66. > at /usr/share/perl5/IO/Socket/INET6.pm line 16 > Prototype mismatch: sub IO::Socket::INET6::PF_INET6 () vs none at > /usr/share/perl/5.10/Exporter.pm line 66. > at /usr/share/perl5/IO/Socket/INET6.pm line 16 > Constant subroutine Net::DNS::Resolver::Base::AF_INET6 redefined at > /usr/share/perl/5.10/Exporter.pm line 66. > at /usr/lib/perl5/Net/DNS/Resolver/Base.pm line 65 > Prototype mismatch: sub Net::DNS::Resolver::Base::AF_INET6 () vs none at > /usr/share/perl/5.10/Exporter.pm line 66. > at /usr/lib/perl5/Net/DNS/Resolver/Base.pm line 65 > Constant subroutine Net::DNS::Resolver::Base::PF_INET6 redefined at > /usr/share/perl/5.10/Exporter.pm line 66. > at /usr/lib/perl5/Net/DNS/Resolver/Base.pm line 65 > Prototype mismatch: sub Net::DNS::Resolver::Base::PF_INET6 () vs none at > /usr/share/perl/5.10/Exporter.pm line 66. > at /usr/lib/perl5/Net/DNS/Resolver/Base.pm line 65 > spamd. > [EMAIL PROTECTED]:~# ps aux | grep spam > root 20622 0.0 0.0 1784 576 pts/0 S+ 11:05 0:00 grep spam > [EMAIL PROTECTED]:~# nano /etc/default/spamassassin > [EMAIL PROTECTED]:~# grep OPT /etc/default/spamassassin > OPTIONS="--create-prefs --max-children 5 --helper-home-dir -D" > [EMAIL PROTECTED]:~# /etc/init.d/spamassassin start > Starting SpamAssassin Mail Filter Daemon: Constant subroutine > IO::Socket::INET6::AF_INET6 redefined at /usr/share/perl/5.10/Exporter.pm > line 66. > at /usr/share/perl5/IO/Socket/INET6.pm line 16 > Prototype mismatch: sub IO::Socket::INET6::AF_INET6 () vs none at > /usr/share/perl/5.10/Exporter.pm line 66. > at /usr/share/perl5/IO/Socket/INET6.pm line 16 > Constant subroutine IO::Socket::INET6::PF_INET6 redefined at > /usr/share/perl/5.10/Exporter.pm line 66. > at /usr/share/perl5/IO/Socket/INET6.pm line 16 > Prototype mismatch: sub IO::Socket::INET6::PF_INET6 () vs none at > /usr/share/perl/5.10/Exporter.pm line 66. > at /usr/share/perl5/IO/Socket/INET6.pm line 16 > Constant subroutine Net::DNS::Resolver::Base::AF_INET6 redefined at > /usr/share/perl/5.10/Exporter.pm line 66. > at /usr/lib/perl5/Net/DNS/Resolver/Base.pm line 65 > Prototype mismatch: sub Net::DNS::Resolver::Base::AF_INET6 () vs none at > /usr/share/perl/5.10/Exporter.pm line 66. > at /usr/lib/perl5/Net/DNS/Resolver/Base.pm line 65 > Constant subroutine Net::DNS::Resolver::Base::PF_INET6 redefined at > /usr/share/perl/5.10/Exporter.pm line 66. > at /usr/lib/perl5/Net/DNS/Resolver/Base.pm line 65 > Prototype mismatch: sub Net::DNS::Resolver::Base::PF_INET6 () vs none at > /usr/share/perl/5.10/Exporter.pm line 66. > at /usr/lib/perl5/Net/DNS/Resolver/Base.pm line 65 > [21123] dbg: logger: adding facilities: all > [21123] dbg: logger: logging level is DBG > [21123] dbg: logger: trying to connect to syslog/unix... > [21123] dbg: logger: opening syslog with unix socket > [21123] dbg: logger: successfully connected to syslog/unix > [21123] dbg: logger: successfully added syslog method > [21123] dbg: spamd: will perform setuids? 1 > [21123] dbg: spamd: creating INET socket: > [21123] dbg: spamd: Listen: 128 > [21123] dbg: spamd: LocalAddr: 127.0.0.1 > [21123] dbg: spamd: LocalPort: 783 > [21123] dbg: spamd: Proto: 6 > [21123] dbg: spamd: ReuseAddr: 1 > [21123] dbg: spamd: Type: 1 > [21123] dbg: logger: adding facilities: all > [21123] dbg: logger: logging level is DBG > [21123] dbg: generic: SpamAssassin version 3.2.4 > [21123] dbg: config: score set 0 chosen. > [21123] dbg: dns: is Net::DNS::Resolver available? yes > [21123] dbg: dns: Net::DNS version: 0.63 > spamd. > [EMAIL PROTECTED]:~# ps aux | grep spam > root 21128 1.2 1.3 17008 13756 ? Ss 11:14 0:00 > /usr/bin/perl -T -w /usr/sbin/spamd --create-prefs --max-children 5 > --helper-home-dir -D -d --pidfile=/var/run/spamd.pid > root 21137 0.0 0.0 1784 572 pts/0 S+ 11:14 0:00 grep spam > [EMAIL PROTECTED]:~# /etc/init.d/spamassassin stop > Stopping SpamAssassin Mail Filter Daemon: No /usr/bin/perl found running; > none killed. > spamd. > [EMAIL PROTECTED]:~# sa-compile -D > ... > [21436] dbg: zoom: loading compiled ruleset from > /var/lib/spamassassin/compiled/3.002004 > /usr/bin/perl: symbol lookup error: > /var/lib/spamassassin/compiled/3.002004/auto/Mail/SpamAssassin/CompiledRegexps/body_0/body_0.so: > undefined symbol: Perl_Tstack_sp_ptr > [EMAIL PROTECTED]:~# ps aux | grep spam > root 21678 0.0 0.0 1780 516 pts/0 R+ 11:24 0:00 grep spam > [EMAIL PROTECTED]:~# /etc/init.d/spamassassin start > Starting SpamAssassin Mail Filter Daemon: Constant subroutine > IO::Socket::INET6::AF_INET6 redefined at /usr/share/perl/5.10/Exporter.pm > line 66. > at /usr/share/perl5/IO/Socket/INET6.pm line 16 > Prototype mismatch: sub IO::Socket::INET6::AF_INET6 () vs none at > /usr/share/perl/5.10/Exporter.pm line 66. > at /usr/share/perl5/IO/Socket/INET6.pm line 16 > Constant subroutine IO::Socket::INET6::PF_INET6 redefined at > /usr/share/perl/5.10/Exporter.pm line 66. > at /usr/share/perl5/IO/Socket/INET6.pm line 16 > Prototype mismatch: sub IO::Socket::INET6::PF_INET6 () vs none at > /usr/share/perl/5.10/Exporter.pm line 66. > at /usr/share/perl5/IO/Socket/INET6.pm line 16 > Constant subroutine Net::DNS::Resolver::Base::AF_INET6 redefined at > /usr/share/perl/5.10/Exporter.pm line 66. > at /usr/lib/perl5/Net/DNS/Resolver/Base.pm line 65 > Prototype mismatch: sub Net::DNS::Resolver::Base::AF_INET6 () vs none at > /usr/share/perl/5.10/Exporter.pm line 66. > at /usr/lib/perl5/Net/DNS/Resolver/Base.pm line 65 > Constant subroutine Net::DNS::Resolver::Base::PF_INET6 redefined at > /usr/share/perl/5.10/Exporter.pm line 66. > at /usr/lib/perl5/Net/DNS/Resolver/Base.pm line 65 > Prototype mismatch: sub Net::DNS::Resolver::Base::PF_INET6 () vs none at > /usr/share/perl/5.10/Exporter.pm line 66. > at /usr/lib/perl5/Net/DNS/Resolver/Base.pm line 65 > spamd. > [EMAIL PROTECTED]:~# ps aux | grep spam > root 21685 108 2.7 31256 28396 ? Ss 11:24 0:01 > /usr/sbin/spamd --create-prefs --max-children 5 --helper-home-dir -d > --pidfile=/var/run/spamd.pid > root 21690 0.0 0.0 1784 576 pts/0 S+ 11:24 0:00 grep spam > [EMAIL PROTECTED]:~# /etc/init.d/spamassassin stop > Stopping SpamAssassin Mail Filter Daemon: spamd. > [EMAIL PROTECTED]:~# ps aux | grep spam > root 22114 0.0 0.0 1780 520 pts/0 R+ 11:35 0:00 grep spam > > -- System Information: > Debian Release: lenny/sid > APT prefers unstable > APT policy: (500, 'unstable'), (1, 'experimental') > Architecture: i386 (i686) > > Kernel: Linux 2.6.25-1-686 (SMP w/2 CPU cores) > Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.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.11-2+b1 NIST SHA-1 message digest > algorith > ii libhtml-parser-perl 3.56-1+b1 A collection of modules that > parse > ii libio-zlib-perl 1.09-1 IO:: style interface to > gzip/zlib > ii libnet-dns-perl 0.63-1+b1 Perform DNS queries from a Perl > sc > ii libsocket6-perl 0.19-1+b1 Perl extensions for IPv6 > ii libsys-hostname-long-perl 1.4-2 Figure out the long > (fully-qualifi > ii libwww-perl 5.812-1 WWW client/server library for > Perl > ii perl 5.10.0-9 Larry Wall's Practical > Extraction > ii perl-modules [libio-zlib-perl 5.10.0-9 Core Perl modules > > Versions of packages spamassassin recommends: > ii gcc 4:4.2.3-8 The GNU C compiler > ii gnupg 1.4.6-2.2 GNU privacy guard - a free PGP > rep > ii libc6-dev 2.7-10 GNU C Library: Development > Librari > ii libmail-spf-perl 2.005-1 Perl implementation of Sender > Poli > pn libsys-syslog-perl <none> (no description available) > ii make 3.81-4 The GNU version of the "make" > util > ii re2c 0.13.3-1 tool for generating fast C-based > r > ii spamc 3.2.4-1 Client for SpamAssassin spam > filte > > -- debconf information: > spamassassin/upgrade/2.40: > spamassassin/upgrade/2.40w: > spamassassin/upgrade/cancel: Continue > spamassassin/upgrade/2.42m: No > spamassassin/upgrade/2.42u: No > > -- > bye, > pabs > > http://wiki.debian.org/PaulWise > part 2 application/pgp-signatur 189 This is a digitally signed message p -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]