Bug#743184: perl: SpamAssassin spamd segfaults since updating servers to Debian wheezy

Martin von Wittich martin.von.wittich at iserv.eu
Tue Apr 1 14:06:01 UTC 2014


> The bug seems unfortunately hard to reproduce by others, so I'm going
> to have to ask you to help some more. See below. If you can come up with
> a recipe to trigger a crash, that would help a lot.

I'd like to, but unfortunately I don't know how yet. Is it possible to use gdb
to identify the code that perl has been executing when it crashed? I'm not too
familiar with gdb, but I hope that this may lead to a recipe.

> So, as a further data point, could you please try with upstream 5.14.4,
> compiled with at least -Dusethreads -Duse64bitint -Duselargefiles, and
> maybe also the gcc flags from dpkg-buildflags ? (See debian/config.debian
> in the perl source package.) Note that these compilation options change
> the ABI so you'll have to reinstall all the CPAN modules too.

I've ignored the flags from from config.debian for the time being because there
are a lot and I don't understand which ones I need... most of them seem to
modify the installation paths, and I think that would be counterproductive for
my test builds. I've now compiled Perl 5.14.4 with the following command:


host ~ # ~/perl5/perlbrew/bin/perlbrew install 5.14.4 -Dusethreads -Duse64bitint -Duselargefiles
Fetching perl 5.14.4 as /usr/share/iserv/security/ssh/martin.von.wittich/perl5/perlbrew/dists/perl-5.14.4.tar.bz2
Download http://www.cpan.org/src/5.0/perl-5.14.4.tar.bz2 to /usr/share/iserv/security/ssh/martin.von.wittich/perl5/perlbrew/dists/perl-5.14.4.tar.bz2
Installing /usr/share/iserv/security/ssh/martin.von.wittich/perl5/perlbrew/build/perl-5.14.4 into ~/perl5/perlbrew/perls/perl-5.14.4

This could take a while. You can run the following command on another shell to track the status:

  tail -f ~/perl5/perlbrew/build.perl-5.14.4.log

perl-5.14.4 is successfully installed.


perl -V seems to confirm that the compile flags worked (see attachment
perl-v.txt). I will now rebuild SA and leave that running for a while to see if
it crashes again.
-------------- next part --------------
host ~ # ~/perl5/perlbrew/perls/perl-5.14.4/bin/perl -V
Summary of my perl5 (revision 5 version 14 subversion 4) configuration:

  Platform:
    osname=linux, osvers=3.2.0-0.bpo.4-686-pae, archname=i686-linux-thread-multi-64int
    uname='linux host 3.2.0-0.bpo.4-686-pae #1 smp debian 3.2.41-2~bpo60+1 i686 gnulinux '
    config_args='-de -Dprefix=/usr/share/iserv/security/ssh/martin.von.wittich/perl5/perlbrew/perls/perl-5.14.4 -Dusethreads -Duse64bitint -Duselargefiles -Aeval:scriptdir=/usr/share/iserv/security/ssh/martin.von.wittich/perl5/perlbrew/perls/perl-5.14.4/bin'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
    use64bitint=define, use64bitall=undef, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O2',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include'
    ccversion='', gccversion='4.7.2', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    ivtype='long long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=4, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
    libpth=/usr/local/lib /lib/i386-linux-gnu /lib/../lib /usr/lib/i386-linux-gnu /usr/lib/../lib /lib /usr/lib
    libs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
    perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
    libc=libc-2.13.so, so=so, useshrplib=false, libperl=libperl.a
    gnulibc_version='2.13'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
    cccdlflags='-fPIC', lddlflags='-shared -O2 -L/usr/local/lib -fstack-protector'


Characteristics of this binary (from libperl):
  Compile-time options: MULTIPLICITY PERL_DONT_CREATE_GVSV
                        PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP
                        PERL_PRESERVE_IVUV USE_64_BIT_INT USE_ITHREADS
                        USE_LARGE_FILES USE_PERLIO USE_PERL_ATOF
                        USE_REENTRANT_API
  Built under linux
  Compiled at Apr  1 2014 14:36:28
  @INC:
    /usr/share/iserv/security/ssh/martin.von.wittich/perl5/perlbrew/perls/perl-5.14.4/lib/site_perl/5.14.4/i686-linux-thread-multi-64int
    /usr/share/iserv/security/ssh/martin.von.wittich/perl5/perlbrew/perls/perl-5.14.4/lib/site_perl/5.14.4
    /usr/share/iserv/security/ssh/martin.von.wittich/perl5/perlbrew/perls/perl-5.14.4/lib/5.14.4/i686-linux-thread-multi-64int
    /usr/share/iserv/security/ssh/martin.von.wittich/perl5/perlbrew/perls/perl-5.14.4/lib/5.14.4
    .


More information about the Perl-maintainers mailing list