> 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!

        Is PHP acting like a Poltergeist?  (Sorry, I couldn't resist.)

> No sane person cares about $[,

        Its use is also discouraged according to the documentation:

                "As of release 5 of Perl, assignment to $[ is treated as a 
compiler 
directive, and cannot influence the behavior of any other file. 
(That's why you can only assign compile-time constants to it.) Its 
use is highly discouraged."

        Source:  http://perldoc.perl.org/perlvar.html

> 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.

        That's one good reason for not segfaulting.  =)

[End of reply.]

> 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<----------


Randolf Richardson - rand...@inter-corporate.com
Inter-Corporate Computer & Network Services, Inc.
Beautiful British Columbia, Canada
http://www.inter-corporate.com/


Reply via email to