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]

Reply via email to