You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@perl.apache.org by "David E. Wheeler" <da...@kineticode.com> on 2011/07/15 08:22:39 UTC

Core Dump on Perl 5.14

Hey Gang,

Building a new server (well, old server, but only now getting mod_perl) and mod_perl is core dumping. I built Perl 5.14.1 from source on it a few days ago:

    $ perl -V
    Summary of my perl5 (revision 5 version 14 subversion 1) configuration:
   
      Platform:
        osname=linux, osvers=2.6.24-23-server, archname=i686-linux-thread-multi
        uname='linux wolf 2.6.24-23-server #1 smp wed apr 1 22:22:14 utc 2009 i686 gnulinux '
        config_args='-des -Duseshrplib -Dusemultiplicity -Duseithreads -Dinc_version_list=none -Dperladmin=david@kineticode.com -Dcf_email=david@kineticode.com'
        hint=recommended, useposix=true, d_sigaction=define
        useithreads=define, usemultiplicity=define
        useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
        use64bitint=undef, 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.2.4 (Ubuntu 4.2.4-1ubuntu4)', gccosandvers=''
        intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
        d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
        ivtype='long', ivsize=4, 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/../lib /usr/lib/../lib /lib /usr/lib /usr/lib64
        libs=-lnsl -ldb -ldl -lm -lcrypt -lutil -lpthread -lc
        perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
        libc=/lib/libc-2.7.so, so=so, useshrplib=true, libperl=libperl.so
        gnulibc_version='2.7'
      Dynamic Linking:
        dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-rpath,/usr/local/lib/perl5/5.14.1/i686-linux-thread-multi/CORE'
        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_ITHREADS USE_LARGE_FILES
                            USE_PERLIO USE_PERL_ATOF USE_REENTRANT_API
      Built under linux
      Compiled at Jul 11 2011 22:59:22
      @INC:
        /usr/local/lib/perl5/site_perl/5.14.1/i686-linux-thread-multi
        /usr/local/lib/perl5/site_perl/5.14.1
        /usr/local/lib/perl5/5.14.1/i686-linux-thread-multi
        /usr/local/lib/perl5/5.14.1
        .

I just build Apache 2.2.19 from source, too, with this incantation:

    ./configure \
     --prefix=/usr/local/apache2 \
     --with-mpm=prefork \
     --with-included-apr \
     --enable-dav \
     --enable-dav-fs \
     --enable-log-config \
     --enable-authn-file \
     --enable-authz-host \
     --enable-authz-group \
     --enable-authz-user \
     --enable-mods-shared="rewrite info worker proxy deflate headers mod_auth include ssl env mime-magic auth_digest expires dav dav_fs perl"

I built mod_perl 2 from SVN trunk like so:

    /usr/local/bin/perl Makefile.PL \
      MP_APXS=/usr/local/apache2/bin/apxs \
      MP_PROMPT_DEFAULT=1 MP_DEBUG=1

It reliably segfaults during `make test`. Following the debugging instructions, I get this back trace:

    #0  0x404fd7cf in modperl_env_clear (my_perl=0x84fcc88) at modperl_env.c:100
    #1  0x404e3dcd in modperl_boot (my_perl=0x84fcc88, data=0x0) at mod_perl.c:100
    #2  0x405f859f in Perl_leave_scope ()
       from /usr/local/lib/perl5/5.14.1/i686-linux-thread-multi/CORE/libperl.so
    #3  0x405f9415 in Perl_pop_scope ()
       from /usr/local/lib/perl5/5.14.1/i686-linux-thread-multi/CORE/libperl.so
    #4  0x40554c9a in S_parse_body ()
       from /usr/local/lib/perl5/5.14.1/i686-linux-thread-multi/CORE/libperl.so
    #5  0x405558d0 in perl_parse ()
       from /usr/local/lib/perl5/5.14.1/i686-linux-thread-multi/CORE/libperl.so
    #6  0x404e418d in modperl_startup (s=0x80e4e20, p=0x80dd0a8) at mod_perl.c:255
    #7  0x404e4036 in modperl_startup (s=0x80e4e20, p=0x80dd0a8) at mod_perl.c:207
    #8  0x404e56bd in modperl_init (base_server=0x80e4e20, p=0x80dd0a8) at mod_perl.c:458
    #9  0x404e5cb3 in modperl_hook_init (pconf=0x80dd0a8, plog=0x0, ptemp=0x0, s=0x80e4e20)
        at mod_perl.c:631
    #10 0x404e5cfe in modperl_run () at mod_perl.c:642
    #11 0x404ed667 in modperl_cmd_load_module (parms=0xbfee0be4, mconfig=0x81747f8, 
        arg=0x83f1de8 "TestCompat::apache_module") at modperl_cmd.c:666
    #12 0x0808195e in invoke_cmd ()
    #13 0x08082c17 in ap_walk_config_sub ()
    #14 0x08082cb1 in ap_walk_config ()
    #15 0x08084087 in ap_process_config_tree ()
    #16 0x08069549 in main ()

And here's the context:

    (gdb) define curinfo
    Type commands for definition of "curinfo".
    End with a line saying just "end".
    >     printf "%d:%s\n", my_perl->Tcurcop->cop_line, \
    (gdb)          my_perl->Tcurcop->cop_file
    >  end
    (gdb) curinfo
    There is no member named Tcurcop.

Is there a missing symbol or something? line 100 of modper_env.c is:

    HV *hv = ENVHV;

Context:

    void modperl_env_clear(pTHX)
    {
        HV *hv = ENVHV;
        U32 mg_flags;

        modperl_env_untie(mg_flags);

        MP_TRACE_e(MP_FUNC, "[0x%lx] %%ENV = ();", modperl_interp_address(aTHX));

        hv_clear(hv);

        modperl_env_tie(mg_flags);
    }

Anyone know what the problem might be?

This is Ubuntu 8.04 FWIW.

Best,

David


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org


Re: Core Dump on Perl 5.14

Posted by Jie Gao <J....@isu.usyd.edu.au>.
ithreads problem? See: http://comments.gmane.org/gmane.comp.apache.mod-perl/5386


-Jie

* David E. Wheeler <da...@kineticode.com> wrote:

> Date: Thu, 14 Jul 2011 23:22:39 -0700
> From: "David E. Wheeler" <da...@kineticode.com>
> To: mod_perl Dev <de...@perl.apache.org>
> Subject: Core Dump on Perl 5.14
> X-Mailer: Apple Mail (2.1084)
> 
> Hey Gang,
> 
> Building a new server (well, old server, but only now getting mod_perl) and mod_perl is core dumping. I built Perl 5.14.1 from source on it a few days ago:
> 
>     $ perl -V
>     Summary of my perl5 (revision 5 version 14 subversion 1) configuration:
>    
>       Platform:
>         osname=linux, osvers=2.6.24-23-server, archname=i686-linux-thread-multi
>         uname='linux wolf 2.6.24-23-server #1 smp wed apr 1 22:22:14 utc 2009 i686 gnulinux '
>         config_args='-des -Duseshrplib -Dusemultiplicity -Duseithreads -Dinc_version_list=none -Dperladmin=david@kineticode.com -Dcf_email=david@kineticode.com'
>         hint=recommended, useposix=true, d_sigaction=define
>         useithreads=define, usemultiplicity=define
>         useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef
>         use64bitint=undef, 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.2.4 (Ubuntu 4.2.4-1ubuntu4)', gccosandvers=''
>         intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
>         d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
>         ivtype='long', ivsize=4, 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/../lib /usr/lib/../lib /lib /usr/lib /usr/lib64
>         libs=-lnsl -ldb -ldl -lm -lcrypt -lutil -lpthread -lc
>         perllibs=-lnsl -ldl -lm -lcrypt -lutil -lpthread -lc
>         libc=/lib/libc-2.7.so, so=so, useshrplib=true, libperl=libperl.so
>         gnulibc_version='2.7'
>       Dynamic Linking:
>         dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E -Wl,-rpath,/usr/local/lib/perl5/5.14.1/i686-linux-thread-multi/CORE'
>         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_ITHREADS USE_LARGE_FILES
>                             USE_PERLIO USE_PERL_ATOF USE_REENTRANT_API
>       Built under linux
>       Compiled at Jul 11 2011 22:59:22
>       @INC:
>         /usr/local/lib/perl5/site_perl/5.14.1/i686-linux-thread-multi
>         /usr/local/lib/perl5/site_perl/5.14.1
>         /usr/local/lib/perl5/5.14.1/i686-linux-thread-multi
>         /usr/local/lib/perl5/5.14.1
>         .
> 
> I just build Apache 2.2.19 from source, too, with this incantation:
> 
>     ./configure \
>      --prefix=/usr/local/apache2 \
>      --with-mpm=prefork \
>      --with-included-apr \
>      --enable-dav \
>      --enable-dav-fs \
>      --enable-log-config \
>      --enable-authn-file \
>      --enable-authz-host \
>      --enable-authz-group \
>      --enable-authz-user \
>      --enable-mods-shared="rewrite info worker proxy deflate headers mod_auth include ssl env mime-magic auth_digest expires dav dav_fs perl"
> 
> I built mod_perl 2 from SVN trunk like so:
> 
>     /usr/local/bin/perl Makefile.PL \
>       MP_APXS=/usr/local/apache2/bin/apxs \
>       MP_PROMPT_DEFAULT=1 MP_DEBUG=1
> 
> It reliably segfaults during `make test`. Following the debugging instructions, I get this back trace:
> 
>     #0  0x404fd7cf in modperl_env_clear (my_perl=0x84fcc88) at modperl_env.c:100
>     #1  0x404e3dcd in modperl_boot (my_perl=0x84fcc88, data=0x0) at mod_perl.c:100
>     #2  0x405f859f in Perl_leave_scope ()
>        from /usr/local/lib/perl5/5.14.1/i686-linux-thread-multi/CORE/libperl.so
>     #3  0x405f9415 in Perl_pop_scope ()
>        from /usr/local/lib/perl5/5.14.1/i686-linux-thread-multi/CORE/libperl.so
>     #4  0x40554c9a in S_parse_body ()
>        from /usr/local/lib/perl5/5.14.1/i686-linux-thread-multi/CORE/libperl.so
>     #5  0x405558d0 in perl_parse ()
>        from /usr/local/lib/perl5/5.14.1/i686-linux-thread-multi/CORE/libperl.so
>     #6  0x404e418d in modperl_startup (s=0x80e4e20, p=0x80dd0a8) at mod_perl.c:255
>     #7  0x404e4036 in modperl_startup (s=0x80e4e20, p=0x80dd0a8) at mod_perl.c:207
>     #8  0x404e56bd in modperl_init (base_server=0x80e4e20, p=0x80dd0a8) at mod_perl.c:458
>     #9  0x404e5cb3 in modperl_hook_init (pconf=0x80dd0a8, plog=0x0, ptemp=0x0, s=0x80e4e20)
>         at mod_perl.c:631
>     #10 0x404e5cfe in modperl_run () at mod_perl.c:642
>     #11 0x404ed667 in modperl_cmd_load_module (parms=0xbfee0be4, mconfig=0x81747f8, 
>         arg=0x83f1de8 "TestCompat::apache_module") at modperl_cmd.c:666
>     #12 0x0808195e in invoke_cmd ()
>     #13 0x08082c17 in ap_walk_config_sub ()
>     #14 0x08082cb1 in ap_walk_config ()
>     #15 0x08084087 in ap_process_config_tree ()
>     #16 0x08069549 in main ()
> 
> And here's the context:
> 
>     (gdb) define curinfo
>     Type commands for definition of "curinfo".
>     End with a line saying just "end".
>     >     printf "%d:%s\n", my_perl->Tcurcop->cop_line, \
>     (gdb)          my_perl->Tcurcop->cop_file
>     >  end
>     (gdb) curinfo
>     There is no member named Tcurcop.
> 
> Is there a missing symbol or something? line 100 of modper_env.c is:
> 
>     HV *hv = ENVHV;
> 
> Context:
> 
>     void modperl_env_clear(pTHX)
>     {
>         HV *hv = ENVHV;
>         U32 mg_flags;
> 
>         modperl_env_untie(mg_flags);
> 
>         MP_TRACE_e(MP_FUNC, "[0x%lx] %%ENV = ();", modperl_interp_address(aTHX));
> 
>         hv_clear(hv);
> 
>         modperl_env_tie(mg_flags);
>     }
> 
> Anyone know what the problem might be?
> 
> This is Ubuntu 8.04 FWIW.
> 
> Best,
> 
> David
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
> For additional commands, e-mail: dev-help@perl.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@perl.apache.org
For additional commands, e-mail: dev-help@perl.apache.org