Re: $[ causes segfault with mod_perl 2.0.9, apache 2.4.10

"Randolf Richardson" <[email protected]>
Newsgroups gmane.comp.apache.mod-perl
Organization Inter-Corporate Computer & Network Services
Message-ID <[email protected]>
> 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 - [email protected]
Inter-Corporate Computer & Network Services, Inc.
Beautiful British Columbia, Canada
http://www.inter-corporate.com/
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.