$[ causes segfault with mod_perl 2.0.9, apache 2.4.10

Kostas Chatzikokolakis <[email protected]>
Newsgroups gmane.comp.apache.mod-perl
Message-ID <CAM8S5cs5uRfknnbu0tj4ejGuwBwG-Srk3gXbWsBS+00HyXdRTA@mail.gmail.com>
Hello,

simply adding <Perl>  $[  </Perl>
to /etc/apache2/apache2.conf (or PerlPostConfigRequire a file
containing $[) causes apache to segfault (trace below).

Strangely this happens _only_ if mod_php is also loaded!

No sane person cares about $[, but it's not uncommon to
PerlPostConfigRequire some old module using it, and it took me a few
hours to figure out what's happening after upgrading to ubuntu 15.04.

Tested in a clean ubuntu 15.04 installation:
apache 2.4.10
perl 5.20.2
mod_perl 2.0.9~1624218
mod_php 5.6.4

Cheers,
Kostas



2. Used Components and their Configuration:

*** mod_perl version 2.000009

*** using /usr/lib/x86_64-linux-gnu/perl5/5.20/Apache2/BuildConfig.pm

*** Makefile.PL options:
  MP_APR_CONFIG  => /usr/bin/apr-config
  MP_APR_LIB     => aprext
  MP_APXS        => /usr/bin/apxs
  MP_CCOPTS      => -g -O2 -fstack-protector-strong -Wformat
-Werror=format-security -Wall
  MP_COMPAT_1X   => 1
  MP_GENERATE_XS => 1
  MP_LIBNAME     => mod_perl
  MP_TRACE       => 0
  MP_USE_DSO     => 1
  MP_USE_STATIC  => 0


*** The httpd binary was not found


*** (apr|apu)-config linking info

(apr|apu)-config scripts were not found



*** /usr/bin/perl -V
Summary of my perl5 (revision 5 version 20 subversion 2) configuration:

  Platform:
    osname=linux, osvers=3.2.0-58-generic,
archname=x86_64-linux-gnu-thread-multi
    uname='linux kissel 3.2.0-58-generic #88-ubuntu smp tue dec 3
17:37:58 utc 2013 x86_64 x86_64 x86_64 gnulinux '
    config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN
-D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector-strong -Wformat
-Werror=format-security -Dldflags= -Wl,-Bsymbolic-functions
-Wl,-z,relro -Dlddlflags=-shared -Wl,-Bsymbolic-functions -Wl,-z,relro
-Dcccdlflags=-fPIC -Darchname=x86_64-linux-gnu -Dprefix=/usr
-Dprivlib=/usr/share/perl/5.20
-Darchlib=/usr/lib/x86_64-linux-gnu/perl/5.20 -Dvendorprefix=/usr
-Dvendorlib=/usr/share/perl5
-Dvendorarch=/usr/lib/x86_64-linux-gnu/perl5/5.20
-Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.20.2
-Dsitearch=/usr/local/lib/x86_64-linux-gnu/perl/5.20.2
-Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3
-Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3
-Duse64bitint -Dman1ext=1 -Dman3ext=3perl
-Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Ud_ualarm -Uusesfio
-Uusenm -Ui_libutil -Uversiononly -DDEBUGGING=-g -Doptimize=-O2
-Duseshrplib -Dlibperl=libperl.so.5.20.2 -des'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=define, usemultiplicity=define
    use64bitint=define, use64bitall=define, uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv
-fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64',
    optimize='-O2 -g',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv
-fno-strict-aliasing -pipe -I/usr/local/include'
    ccversion='', gccversion='4.9.2', gccosandvers=''
    intsize=4, longsize=8, ptrsize=8, doublesize=8, byteorder=12345678
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=8, nvtype='double', nvsize=8, Off_t='off_t',
lseeksize=8
    alignbytes=8, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -fstack-protector -L/usr/local/lib'
    libpth=/usr/local/lib
/usr/lib/gcc/x86_64-linux-gnu/4.9/include-fixed
/usr/include/x86_64-linux-gnu /usr/lib /lib/x86_64-linux-gnu
/lib/../lib /usr/lib/x86_64-linux-gnu /usr/lib/../lib /lib
    libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt
    perllibs=-ldl -lm -lpthread -lc -lcrypt
    libc=libc-2.19.so, so=so, useshrplib=true, libperl=libperl.so.5.20
    gnulibc_version='2.19'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
    cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib -fstack-protector'


Characteristics of this binary (from libperl):
  Compile-time options: HAS_TIMES MULTIPLICITY PERLIO_LAYERS
                        PERL_DONT_CREATE_GVSV
                        PERL_HASH_FUNC_ONE_AT_A_TIME_HARD
                        PERL_IMPLICIT_CONTEXT PERL_MALLOC_WRAP
                        PERL_NEW_COPY_ON_WRITE PERL_PRESERVE_IVUV
                        USE_64_BIT_ALL USE_64_BIT_INT USE_ITHREADS
                        USE_LARGE_FILES USE_LOCALE USE_LOCALE_COLLATE
                        USE_LOCALE_CTYPE USE_LOCALE_NUMERIC USE_PERLIO
                        USE_PERL_ATOF USE_REENTRANT_API
  Locally applied patches:
    DEBPKG:debian/cpan_definstalldirs - Provide a sensible INSTALLDIRS
default for modules installed from CPAN.
    DEBPKG:debian/db_file_ver - http://bugs.debian.org/340047 Remove
overly restrictive DB_File version check.
    DEBPKG:debian/doc_info - Replace generic man(1) instructions with
Debian-specific information.
    DEBPKG:debian/enc2xs_inc - http://bugs.debian.org/290336 Tweak
enc2xs to follow symlinks and ignore missing @INC directories.
    DEBPKG:debian/errno_ver - http://bugs.debian.org/343351 Remove
Errno version check due to upgrade problems with long-running
processes.
    DEBPKG:debian/libperl_embed_doc - http://bugs.debian.org/186778
Note that libperl-dev package is required for embedded linking
    DEBPKG:fixes/respect_umask - Respect umask during installation
    DEBPKG:debian/writable_site_dirs - Set umask approproately for
site install directories
    DEBPKG:debian/extutils_set_libperl_path - EU:MM: set location of
libperl.a under /usr/lib
    DEBPKG:debian/no_packlist_perllocal - Don't install .packlist or
perllocal.pod for perl or vendor
    DEBPKG:debian/prefix_changes - Fiddle with *PREFIX and variables
written to the makefile
    DEBPKG:debian/fakeroot - Postpone LD_LIBRARY_PATH evaluation to
the binary targets.
    DEBPKG:debian/instmodsh_doc - Debian policy doesn't install
.packlist files for core or vendor.
    DEBPKG:debian/ld_run_path - Remove standard libs from LD_RUN_PATH
as per Debian policy.
    DEBPKG:debian/libnet_config_path - Set location of libnet.cfg to
/etc/perl/Net as /usr may not be writable.
    DEBPKG:debian/mod_paths - Tweak @INC ordering for Debian
    DEBPKG:debian/module_build_man_extensions -
http://bugs.debian.org/479460 Adjust Module::Build manual page
extensions for the Debian Perl policy
    DEBPKG:debian/prune_libs - http://bugs.debian.org/128355 Prune the
list of libraries wanted to what we actually need.
    DEBPKG:fixes/net_smtp_docs - [rt.cpan.org #36038]
http://bugs.debian.org/100195 Document the Net::SMTP 'Port' option
    DEBPKG:debian/perlivp - http://bugs.debian.org/510895 Make perlivp
skip include directories in /usr/local
    DEBPKG:debian/deprecate-with-apt - http://bugs.debian.org/747628
Point users to Debian packages of deprecated core modules
    DEBPKG:debian/squelch-locale-warnings -
http://bugs.debian.org/508764 Squelch locale warnings in Debian
package maintainer scripts
    DEBPKG:debian/skip-upstream-git-tests - Skip tests specific to the
upstream Git repository
    DEBPKG:debian/patchlevel - http://bugs.debian.org/567489 List
packaged patches for 5.20.2-2 in patchlevel.h
    DEBPKG:debian/skip-kfreebsd-crash - http://bugs.debian.org/628493
[perl #96272] Skip a crashing test case in t/op/threads.t on
GNU/kFreeBSD
    DEBPKG:fixes/document_makemaker_ccflags -
http://bugs.debian.org/628522 [rt.cpan.org #68613] Document that
CCFLAGS should include $Config{ccflags}
    DEBPKG:debian/find_html2text - http://bugs.debian.org/640479
Configure CPAN::Distribution with correct name of html2text
    DEBPKG:debian/perl5db-x-terminal-emulator.patch -
http://bugs.debian.org/668490 Invoke x-terminal-emulator rather than
xterm in perl5db.pl
    DEBPKG:debian/cpan-missing-site-dirs -
http://bugs.debian.org/688842 Fix CPAN::FirstTime defaults with
nonexisting site dirs if a parent is writable
    DEBPKG:fixes/memoize_storable_nstore - [rt.cpan.org #77790]
http://bugs.debian.org/587650 Memoize::Storable: respect 'nstore'
option not respected
    DEBPKG:debian/regen-skip - Skip a regeneration check in unrelated
git repositories
    DEBPKG:fixes/regcomp-mips-optim - [perl #122817]
http://bugs.debian.org/754054 Downgrade the optimization of regcomp.c
on mips and mipsel due to a gcc-4.9 bug
    DEBPKG:debian/makemaker-pasthru - http://bugs.debian.org/758471
Pass LD settings through to subdirectories
    DEBPKG:fixes/perldoc-less-R - [rt.cpan.org #98636]
http://bugs.debian.org/758689 Tell the 'less' pager to allow terminal
escape sequences
    DEBPKG:fixes/pod_man_reproducible_date -
http://bugs.debian.org/759405 Support POD_MAN_DATE in Pod::Man for the
left-hand footer
    DEBPKG:fixes/io_uncompress_gunzip_inmemory -
http://bugs.debian.org/747363 [rt.cpan.org #95494] Fix gunzip to
in-memory file handle
    DEBPKG:fixes/socket_test_recv_fix - http://bugs.debian.org/758718
[perl #122657] Compare recv return value to peername in socket test
    DEBPKG:fixes/hurd_socket_recv_todo - http://bugs.debian.org/758718
[perl #122657] TODO checking the result of recv() on hurd
    DEBPKG:fixes/regexp-performance - [0fa70a0]
http://bugs.debian.org/777556 [perl #123743] simpify and speed up
/.*.../ handling
  Built under linux
  Compiled at Mar  3 2015 11:44:27
  %ENV:
    PERL_LWP_USE_HTTP_10="1"
  @INC:
    /etc/perl
    /usr/local/lib/x86_64-linux-gnu/perl/5.20.2
    /usr/local/share/perl/5.20.2
    /usr/lib/x86_64-linux-gnu/perl5/5.20
    /usr/share/perl5
    /usr/lib/x86_64-linux-gnu/perl/5.20
    /usr/share/perl/5.20
    /usr/local/lib/site_perl
    .


3. This is the core dump trace: (if you get a core dump):

#0  0x00007f455212ce70 in ?? ()
#1  0x00007f4557301a04 in Perl_newBINOP () from
/tmp/apport_sandbox_l8WbDl/usr/lib/x86_64-linux-gnu/libperl.so.5.20
#2  0x00007f4557342cf1 in Perl_yyparse () from
/tmp/apport_sandbox_l8WbDl/usr/lib/x86_64-linux-gnu/libperl.so.5.20
#3  0x00007f45573c5342 in ?? () from
/tmp/apport_sandbox_l8WbDl/usr/lib/x86_64-linux-gnu/libperl.so.5.20
#4  0x00007f45573d0fa0 in Perl_pp_require () from
/tmp/apport_sandbox_l8WbDl/usr/lib/x86_64-linux-gnu/libperl.so.5.20
#5  0x00007f455738bbb6 in Perl_runops_standard () from
/tmp/apport_sandbox_l8WbDl/usr/lib/x86_64-linux-gnu/libperl.so.5.20
#6  0x00007f45573153a1 in Perl_eval_sv () from
/tmp/apport_sandbox_l8WbDl/usr/lib/x86_64-linux-gnu/libperl.so.5.20
#7  0x00007f455769fa04 in modperl_require_module () from
/tmp/apport_sandbox_l8WbDl/usr/lib/apache2/modules/mod_perl.so
#8  0x00007f45576963e7 in ?? () from
/tmp/apport_sandbox_l8WbDl/usr/lib/apache2/modules/mod_perl.so
#9  0x00007f45573c20a9 in Perl_leave_scope () from
/tmp/apport_sandbox_l8WbDl/usr/lib/x86_64-linux-gnu/libperl.so.5.20
#10 0x00007f455731b68a in perl_parse () from
/tmp/apport_sandbox_l8WbDl/usr/lib/x86_64-linux-gnu/libperl.so.5.20
#11 0x00007f4557696ab3 in modperl_startup () from
/tmp/apport_sandbox_l8WbDl/usr/lib/apache2/modules/mod_perl.so
#12 0x00007f4557696a43 in modperl_startup () from
/tmp/apport_sandbox_l8WbDl/usr/lib/apache2/modules/mod_perl.so
#13 0x00007f4557696e76 in modperl_init () from
/tmp/apport_sandbox_l8WbDl/usr/lib/apache2/modules/mod_perl.so
#14 0x00007f4557696feb in modperl_hook_init () from
/tmp/apport_sandbox_l8WbDl/usr/lib/apache2/modules/mod_perl.so
#15 0x00007f455769a6f6 in modperl_cmd_perldo () from
/tmp/apport_sandbox_l8WbDl/usr/lib/apache2/modules/mod_perl.so
#16 0x00007f455b2cdd5e in invoke_cmd (cmd=0x7f45578c1570,
parms=0x7fff96bf48d0, mconfig=0x7f455b20ac90, args=0x7f455b1d74d8
"$[\n") at config.c:879
#17 0x00007f455b2d045f in ap_walk_config_sub
(section_vector=<optimized out>, parms=<optimized out>,
current=<optimized out>) at config.c:1309
#18 ap_walk_config (current=0x7f455b1d74e0, parms=0x7fff96bf48d0,
section_vector=0x7f455b2334e8) at config.c:1342
#19 0x00007f455b2d176d in ap_process_config_tree (s=0x7f455c2ea940,
conftree=0x25, p=0x7f455b264028, ptemp=0x7f4557681c80 <PL_ppaddr>)
    at config.c:2059
#20 0x00007f455b2ae143 in main (argc=2, argv=0x7fff96bf4b28) at main.c:739


This report was generated by -e on Thu May 21 18:07:21 2015 GMT.

-------------8<---------- End Bug Report --------------8<----------
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.