RE: PerlRun Memory leak upgrading from 1.99_14 to 2.0.0-RC1

[prev] [thread] [next] [Date index for 2004/12/21]

From: =?iso-8859-1?Q?Jean-Fran=E7ois_Nadeau?=
Subject: RE: PerlRun Memory leak upgrading from 1.99_14 to 2.0.0-RC1
Date: 19:57 on 21 Dec 2004
------_=_NextPart_000_01C4E797.570BD44C
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Thanks for the quick reply.

I cleaned up my installation and reinstalled.
See attached bug report and BuildConfig.pm.

Configured with:
perl Makefile.PL MP_INST_APACHE2=3D1 =
MP_AP_PREFIX=3D/usr/local/apache-2.0.52/=20
make && make install=20

The leak persist after reinstall. =20

I do not have a sample script at the moment...

Regards,

Jean
-----Original Message-----
From: Stas Bekman [mailto:stas@xxxxxx.xxx]=20
Sent: 21 d=E9cembre 2004 11:26
To: Jean-Fran=E7ois Nadeau
Cc: modperl@xxxx.xxxxxx.xxx
Subject: Re: PerlRun Memory leak upgrading from 1.99_14 to 2.0.0-RC1

Jean-Fran=E7ois Nadeau wrote:
> Hi all,
> =20
> I was using mod_perl-1.99_14 under Apache 2.0.49,
> =20
> I upgraded to mod_perl-2.0.0-RC1 under Apache 2.0.52.
> =20
> Im using RedHat 8.0 / perl 5.8.0 / CGI.pm 3.05
> =20
> Apache configuration :
> =20
>  SetHandler perl-script
>  PerlResponseHandler ModPerl::PerlRun
>  PerlOptions +ParseHeaders +GlobalRequest
> =20
> We only use the PerlRun handler. =20
>
> Since the upgrade,  Apache childs leak (fast).
> =20
> Using the old PerlRun.pm with the current mod_perl.so does not leak.
> =20
> I attached "mybugreport"=20

Please inline those in the future, so one could comment on it in reply.

 > *** The httpd binary was not found

Could you please attach (yes, attach this time :)
/root/NEW/mod_perl-2.0.0-RC1/lib/Apache/BuildConfig.pm
I'm trying to figure out why the above happens.

Also what were the exact arguments you've passed to Makefile.PL?

Now back to your problem.

 > *** Packages of interest status:
 >
 > Apache::Request: -
 > CGI            : 3.05
 > LWP            : 5.64, 5.65
 > mod_perl       : 1.9914, 1.9918

That's after you did 'make install' for RC1? how come you have both =
now?
It now looks that you've installed RC1 with MP_INST_APACHE2=3D1, =
whereas
1.99_14 was installed w/o it. So you ended up with a mix of two =
modperls.=20
I suggest you go and nuke any occurences of modperl from your perl tree =
and
do 'make install' again. The above should report only one mod_perl of =
the
1.99_ generation.

If the leak still persist, please post a shortest possible script that =
we
can reproduce the problem with. The best you can do is to prepare a bug
reporting tarball, based on bug-reporting-skeleton-mp2.tar.gz from:
http://perl.apache.org/docs/2.0/user/help/help.html#Problem_Description

--
__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:stas@xxxxxx.xxx http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com


------_=_NextPart_000_01C4E797.570BD44C
Content-Type: application/octet-stream;
	name="mybugreport4"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="mybugreport4"

-------------8<---------- Start Bug Report ------------8<----------=0A=
1. Problem Description:=0A=
=0A=
  [DESCRIBE THE PROBLEM HERE]=0A=
=0A=
2. Used Components and their Configuration:=0A=
=0A=
*** mod_perl version 1.9918=0A=
=0A=
*** using /root/NEW/mod_perl-2.0.0-RC1/lib/Apache/BuildConfig.pm=0A=
=0A=
*** Makefile.PL options:=0A=
  MP_APR_LIB      =3D> aprext=0A=
  MP_AP_PREFIX    =3D> /usr/local/apache-2.0.52=0A=
  MP_COMPAT_1X    =3D> 1=0A=
  MP_GENERATE_XS  =3D> 1=0A=
  MP_INST_APACHE2 =3D> 1=0A=
  MP_LIBNAME      =3D> mod_perl=0A=
  MP_USE_DSO      =3D> 1=0A=
=0A=
=0A=
*** The httpd binary was not found=0A=
=0A=
=0A=
*** (apr|apu)-config linking info=0A=
=0A=
 -L/usr/local/apache-2.0.52/lib -lapr-0 -lrt -lm -lcrypt -lnsl  =
-lpthread -ldl=0A=
 -L/usr/local/apache-2.0.52/lib -laprutil-0 -lgdbm -ldb-4.0 -lexpat=0A=
=0A=
=0A=
=0A=
*** /usr/bin/perl -V=0A=
Summary of my perl5 (revision 5.0 version 8 subversion 0) =
configuration:=0A=
  Platform:=0A=
    osname=3Dlinux, osvers=3D2.4.21-1.1931.2.382.entsmp, =
archname=3Di386-linux-thread-multi=0A=
    uname=3D'linux stripples.devel.redhat.com =
2.4.21-1.1931.2.382.entsmp #1 smp wed aug 6 17:18:52 edt 2003 i686 i686 =
i386 gnulinux '=0A=
    config_args=3D'-des -Doptimize=3D-O2 -g -pipe -march=3Di386 =
-mcpu=3Di686 -Dmyhostname=3Dlocalhost -Dperladmin=3Droot@localhost =
-Dcc=3Dgcc -Dcf_by=3DRed Hat, Inc. -Dinstallprefix=3D/usr =
-Dprefix=3D/usr -Darchname=3Di386-linux -Dvendorprefix=3D/usr =
-Dsiteprefix=3D/usr -Dotherlibdirs=3D/usr/lib/perl5/5.8.0 -Duseshrplib =
-Dusethreads -Duseithreads -Duselargefiles -Dd_dosuid -Dd_semctl_semun =
-Di_db -Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog -Dman3ext=3D3pm =
-Duseperlio -Dinstallusrbinperl -Ubincompat5005 -Uversiononly =
-Dpager=3D/usr/bin/less -isr'=0A=
    hint=3Drecommended, useposix=3Dtrue, d_sigaction=3Ddefine=0A=
    usethreads=3Ddefine use5005threads=3Dundef useithreads=3Ddefine =
usemultiplicity=3Ddefine=0A=
    useperlio=3Ddefine d_sfio=3Dundef uselargefiles=3Ddefine =
usesocks=3Dundef=0A=
    use64bitint=3Dundef use64bitall=3Dundef uselongdouble=3Dundef=0A=
    usemymalloc=3Dn, bincompat5005=3Dundef=0A=
  Compiler:=0A=
    cc=3D'gcc', ccflags =3D'-D_REENTRANT -D_GNU_SOURCE =
-DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing =
-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=3D64 =
-I/usr/include/gdbm',=0A=
    optimize=3D'-O2 -g -pipe -march=3Di386 -mcpu=3Di686',=0A=
    cppflags=3D'-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS =
-DDEBUGGING -fno-strict-aliasing -I/usr/local/include =
-I/usr/include/gdbm'=0A=
    ccversion=3D'', gccversion=3D'3.2.2 20030222 (Red Hat Linux =
3.2.2-5)', gccosandvers=3D''=0A=
    intsize=3D4, longsize=3D4, ptrsize=3D4, doublesize=3D8, =
byteorder=3D1234=0A=
    d_longlong=3Ddefine, longlongsize=3D8, d_longdbl=3Ddefine, =
longdblsize=3D12=0A=
    ivtype=3D'long', ivsize=3D4, nvtype=3D'double', nvsize=3D8, =
Off_t=3D'off_t', lseeksize=3D8=0A=
    alignbytes=3D4, prototype=3Ddefine=0A=
  Linker and Libraries:=0A=
    ld=3D'gcc', ldflags =3D' -L/usr/local/lib'=0A=
    libpth=3D/usr/local/lib /lib /usr/lib=0A=
    libs=3D-lnsl -lgdbm -ldb -ldl -lm -lpthread -lc -lcrypt -lutil=0A=
    perllibs=3D-lnsl -ldl -lm -lpthread -lc -lcrypt -lutil=0A=
    libc=3D/lib/libc-2.3.2.so, so=3Dso, useshrplib=3Dtrue, =
libperl=3Dlibperl.so=0A=
    gnulibc_version=3D'2.3.2'=0A=
  Dynamic Linking:=0A=
    dlsrc=3Ddl_dlopen.xs, dlext=3Dso, d_dlsymun=3Dundef, =
ccdlflags=3D'-rdynamic =
-Wl,-rpath,/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE'=0A=
    cccdlflags=3D'-fPIC', lddlflags=3D'-shared -L/usr/local/lib'=0A=
=0A=
=0A=
Characteristics of this binary (from libperl): =0A=
  Compile-time options: DEBUGGING MULTIPLICITY USE_ITHREADS =
USE_LARGE_FILES PERL_IMPLICIT_CONTEXT=0A=
  Locally applied patches:=0A=
  	MAINT18379=0A=
  Built under linux=0A=
  Compiled at Aug 13 2003 11:47:58=0A=
  %ENV:=0A=
    PERL_LWP_USE_HTTP_10=3D"1"=0A=
  @INC:=0A=
    /usr/lib/perl5/5.8.0/i386-linux-thread-multi=0A=
    /usr/lib/perl5/5.8.0=0A=
    /usr/lib/perl5/site_perl/5.8.0/i386-linux-thread-multi=0A=
    /usr/lib/perl5/site_perl/5.8.0=0A=
    /usr/lib/perl5/site_perl=0A=
    /usr/lib/perl5/vendor_perl/5.8.0/i386-linux-thread-multi=0A=
    /usr/lib/perl5/vendor_perl/5.8.0=0A=
    /usr/lib/perl5/vendor_perl=0A=
    /usr/lib/perl5/5.8.0/i386-linux-thread-multi=0A=
    /usr/lib/perl5/5.8.0=0A=
    .=0A=
=0A=
*** Packages of interest status:=0A=
=0A=
Apache::Request: -=0A=
CGI            : 3.05=0A=
LWP            : 5.64, 5.65=0A=
mod_perl       : 1.9918=0A=
=0A=
=0A=
3. This is the core dump trace: (if you get a core dump):=0A=
=0A=
  [CORE TRACE COMES HERE]=0A=
=0A=
This report was generated by t/REPORT on Tue Dec 21 19:36:17 2004 =
GMT.=0A=
=0A=
-------------8<---------- End Bug Report --------------8<----------=0A=
=0A=
Note: Complete the rest of the details and post this bug report to=0A=
modperl <at> perl.apache.org. To subscribe to the list send an empty=0A=
email to modperl-subscribe@xxxx.xxxxxx.xxx.=0A=
=0A=
=0A=

------_=_NextPart_000_01C4E797.570BD44C
Content-Type: application/octet-stream;
	name="BuildConfig.pm"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="BuildConfig.pm"

# =0A=
# /*=0A=
#  * *********** WARNING **************=0A=
#  * This file generated by Apache::Build/0.01=0A=
#  * Any changes made here will be lost=0A=
#  * ***********************************=0A=
#  * 01: lib/ModPerl/Code.pm:702=0A=
#  * 02: lib/Apache/Build.pm:819=0A=
#  * 03: lib/Apache/Build.pm:839=0A=
#  * 04: Makefile.PL:395=0A=
#  * 05: Makefile.PL:93=0A=
#  */=0A=
# =0A=
package Apache::BuildConfig;=0A=
=0A=
use Apache::Build ();=0A=
=0A=
sub new {=0A=
    bless( {=0A=
        'APXS_APR_BINDIR' =3D> '/usr/local/apache-2.0.52/bin',=0A=
        'APXS_APU_BINDIR' =3D> '/usr/local/apache-2.0.52/bin',=0A=
        'APXS_BINDIR' =3D> '/usr/local/apache-2.0.52/bin',=0A=
        'APXS_INCLUDEDIR' =3D> '/usr/local/apache-2.0.52/include',=0A=
        'APXS_LIBEXECDIR' =3D> '/usr/local/apache-2.0.52/modules',=0A=
        'MODPERL_AP_INCLUDEDIR' =3D> =
'/usr/local/apache-2.0.52/include',=0A=
        'MODPERL_AP_LIBEXECDIR' =3D> =
'/usr/local/apache-2.0.52/modules',=0A=
        'MODPERL_AP_LIBS' =3D> '',=0A=
        'MODPERL_AR' =3D> 'ar',=0A=
        'MODPERL_ARCHLIBEXP' =3D> =
'/usr/lib/perl5/5.8.0/i386-linux-thread-multi',=0A=
        'MODPERL_CC' =3D> 'gcc',=0A=
        'MODPERL_CCCDLFLAGS' =3D> '-fPIC',=0A=
        'MODPERL_CCOPTS' =3D> ' -D_REENTRANT -D_GNU_SOURCE =
-DTHREADS_HAVE_PIDS -DDEBUGGING -fno-strict-aliasing =
-I/usr/local/include -I/usr/include/gdbm =
-I/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE -DMOD_PERL =
-DMP_COMPAT_1X -DLINUX=3D2 -D_XOPEN_SOURCE=3D500 -D_BSD_SOURCE =
-D_SVID_SOURCE',=0A=
        'MODPERL_CP' =3D> 'cp',=0A=
        'MODPERL_CPPRUN' =3D> 'gcc -E',=0A=
        'MODPERL_C_FILES' =3D> 'mod_perl.c modperl_interp.c =
modperl_tipool.c modperl_log.c modperl_config.c modperl_cmd.c =
modperl_options.c modperl_callback.c modperl_handler.c modperl_gtop.c =
modperl_util.c modperl_io.c modperl_io_apache.c modperl_filter.c =
modperl_bucket.c modperl_mgv.c modperl_pcw.c modperl_global.c =
modperl_env.c modperl_cgi.c modperl_perl.c modperl_perl_global.c =
modperl_perl_pp.c modperl_sys.c modperl_module.c modperl_svptr_table.c =
modperl_const.c modperl_constants.c modperl_apache_compat.c =
modperl_error.c modperl_debug.c modperl_common_util.c =
modperl_common_log.c modperl_hooks.c modperl_directives.c =
modperl_flags.c modperl_xsinit.c modperl_exports.c',=0A=
        'MODPERL_DLEXT' =3D> 'so',=0A=
        'MODPERL_H_FILES' =3D> 'mod_perl.h modperl_interp.h =
modperl_tipool.h modperl_log.h modperl_config.h modperl_cmd.h =
modperl_options.h modperl_callback.h modperl_handler.h modperl_gtop.h =
modperl_util.h modperl_io.h modperl_io_apache.h modperl_filter.h =
modperl_bucket.h modperl_mgv.h modperl_pcw.h modperl_global.h =
modperl_env.h modperl_cgi.h modperl_perl.h modperl_perl_global.h =
modperl_perl_pp.h modperl_sys.h modperl_module.h modperl_svptr_table.h =
modperl_const.h modperl_constants.h modperl_apache_compat.h =
modperl_error.h modperl_debug.h modperl_common_util.h =
modperl_common_log.h modperl_perl_unembed.h modperl_types.h =
modperl_time.h modperl_apache_includes.h modperl_perl_includes.h =
modperl_apr_includes.h modperl_apr_compat.h modperl_common_includes.h =
modperl_common_types.h modperl_hooks.h modperl_directives.h =
modperl_flags.h modperl_trace.h modperl_largefiles.h',=0A=
        'MODPERL_INC' =3D> =
'-I/root/NEW/mod_perl-2.0.0-RC1/src/modules/perl =
-I/root/NEW/mod_perl-2.0.0-RC1/xs -I/usr/local/apache-2.0.52/include =
-I/usr/local/apache-2.0.52/include  =
-I/usr/local/apache-2.0.52/include',=0A=
        'MODPERL_LD' =3D> 'gcc',=0A=
        'MODPERL_LDDLFLAGS' =3D> '-shared -L/usr/local/lib',=0A=
        'MODPERL_LDOPTS' =3D> '-rdynamic =
-Wl,-rpath,/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE  =
-L/usr/local/lib =
/usr/lib/perl5/5.8.0/i386-linux-thread-multi/auto/DynaLoader/DynaLoader.=
a -L/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE -lperl -lnsl -ldl =
-lm -lpthread -lc -lcrypt -lutil',=0A=
        'MODPERL_LIB' =3D> 'mod_perl.so',=0A=
        'MODPERL_LIBNAME' =3D> 'mod_perl',=0A=
        'MODPERL_LIBPERL' =3D> =
'/usr/lib/perl5/5.8.0/i386-linux-thread-multi/CORE/libperl.so',=0A=
        'MODPERL_LIB_DSO' =3D> 'mod_perl.so',=0A=
        'MODPERL_LIB_EXT' =3D> '.a',=0A=
        'MODPERL_LIB_SHARED' =3D> 'mod_perl.so',=0A=
        'MODPERL_LIB_STATIC' =3D> 'mod_perl.a',=0A=
        'MODPERL_MAKEFILE' =3D> 'Makefile',=0A=
        'MODPERL_MV' =3D> 'mv',=0A=
        'MODPERL_OBJ_EXT' =3D> '.o',=0A=
        'MODPERL_OPTIMIZE' =3D> '-O2 -g -pipe -march=3Di386 =
-mcpu=3Di686',=0A=
        'MODPERL_O_FILES' =3D> 'mod_perl.o modperl_interp.o =
modperl_tipool.o modperl_log.o modperl_config.o modperl_cmd.o =
modperl_options.o modperl_callback.o modperl_handler.o modperl_gtop.o =
modperl_util.o modperl_io.o modperl_io_apache.o modperl_filter.o =
modperl_bucket.o modperl_mgv.o modperl_pcw.o modperl_global.o =
modperl_env.o modperl_cgi.o modperl_perl.o modperl_perl_global.o =
modperl_perl_pp.o modperl_sys.o modperl_module.o modperl_svptr_table.o =
modperl_const.o modperl_constants.o modperl_apache_compat.o =
modperl_error.o modperl_debug.o modperl_common_util.o =
modperl_common_log.o modperl_hooks.o modperl_directives.o =
modperl_flags.o modperl_xsinit.o modperl_exports.o',=0A=
        'MODPERL_O_PIC_FILES' =3D> 'mod_perl.lo modperl_interp.lo =
modperl_tipool.lo modperl_log.lo modperl_config.lo modperl_cmd.lo =
modperl_options.lo modperl_callback.lo modperl_handler.lo =
modperl_gtop.lo modperl_util.lo modperl_io.lo modperl_io_apache.lo =
modperl_filter.lo modperl_bucket.lo modperl_mgv.lo modperl_pcw.lo =
modperl_global.lo modperl_env.lo modperl_cgi.lo modperl_perl.lo =
modperl_perl_global.lo modperl_perl_pp.lo modperl_sys.lo =
modperl_module.lo modperl_svptr_table.lo modperl_const.lo =
modperl_constants.lo modperl_apache_compat.lo modperl_error.lo =
modperl_debug.lo modperl_common_util.lo modperl_common_log.lo =
modperl_hooks.lo modperl_directives.lo modperl_flags.lo =
modperl_xsinit.lo modperl_exports.lo',=0A=
        'MODPERL_PERLPATH' =3D> '/usr/bin/perl',=0A=
        'MODPERL_PRIVLIBEXP' =3D> '/usr/lib/perl5/5.8.0',=0A=
        'MODPERL_RANLIB' =3D> ':',=0A=
        'MODPERL_RM' =3D> 'rm',=0A=
        'MODPERL_RM_F' =3D> 'rm -f',=0A=
        'MODPERL_TEST_F' =3D> 'test -f',=0A=
        'MODPERL_XSUBPP' =3D> '$(MODPERL_PERLPATH) =
$(MODPERL_PRIVLIBEXP)/ExtUtils/xsubpp -typemap =
$(MODPERL_PRIVLIBEXP)/ExtUtils/typemap -typemap =
/root/NEW/mod_perl-2.0.0-RC1/lib/typemap',=0A=
        'MP_APR_LIB' =3D> 'aprext',=0A=
        'MP_AP_PREFIX' =3D> '/usr/local/apache-2.0.52',=0A=
        'MP_COMPAT_1X' =3D> 1,=0A=
        'MP_GENERATE_XS' =3D> 1,=0A=
        'MP_INST_APACHE2' =3D> '1',=0A=
        'MP_LIBNAME' =3D> 'mod_perl',=0A=
        'MP_USE_DSO' =3D> 1,=0A=
        'VERSION' =3D> '1.99_18',=0A=
        'XS' =3D> {},=0A=
        'ap_includedir' =3D> '/usr/local/apache-2.0.52/include',=0A=
        'apr_bindir' =3D> '/usr/local/apache-2.0.52/bin',=0A=
        'apr_config' =3D> {=0A=
                          'HAS_DSO' =3D> '1',=0A=
                          'HAS_FORK' =3D> '1',=0A=
                          'HAS_INLINE' =3D> '1',=0A=
                          'HAS_LARGE_FILES' =3D> '0',=0A=
                          'HAS_MMAP' =3D> '1',=0A=
                          'HAS_RANDOM' =3D> '1',=0A=
                          'HAS_SENDFILE' =3D> '1',=0A=
                          'HAS_THREADS' =3D> '1'=0A=
                        },=0A=
        'apr_config_path' =3D> =
'/usr/local/apache-2.0.52/bin/apr-config',=0A=
        'apr_includedir' =3D> '/usr/local/apache-2.0.52/include',=0A=
        'apu_config_path' =3D> =
'/usr/local/apache-2.0.52/bin/apu-config',=0A=
        'cwd' =3D> '/root/NEW/mod_perl-2.0.0-RC1',=0A=
        'dir' =3D> '/usr/local/apache-2.0.52',=0A=
        'file_build_config' =3D> 'lib/Apache/BuildConfig.pm',=0A=
        'file_ldopts' =3D> 'src/modules/perl/ldopts',=0A=
        'file_makefile' =3D> 'src/modules/perl/Makefile',=0A=
        'httpd_is_source_tree' =3D> undef,=0A=
        'httpd_version' =3D> {=0A=
                             '/usr/local/apache-2.0.52/include' =3D> =
'2.0.99'=0A=
                           },=0A=
        'libpth' =3D> [=0A=
                      '/usr/local/lib',=0A=
                      '/lib',=0A=
                      '/usr/lib'=0A=
                    ]=0A=
      }, 'Apache::Build' );=0A=
}=0A=
=0A=
1;=0A=


------_=_NextPart_000_01C4E797.570BD44C
Content-Type: text/plain; charset=us-ascii

        -- 
        Report problems: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html
List etiquette: http://perl.apache.org/maillist/email-etiquette.html
------_=_NextPart_000_01C4E797.570BD44C--

PerlRun Memory leak upgrading from 1.99_14 to 2.0.0-RC1
=?iso-8859-1?Q?Jean-Fran=E7ois_Nadeau?= 13:14 on 21 Dec 2004

RE: PerlRun Memory leak upgrading from 1.99_14 to 2.0.0-RC1
=?iso-8859-1?Q?Jean-Fran=E7ois_Nadeau?= 14:55 on 21 Dec 2004

RE: PerlRun Memory leak upgrading from 1.99_14 to 2.0.0-RC1
=?iso-8859-1?Q?Jean-Fran=E7ois_Nadeau?= 19:57 on 21 Dec 2004

Re: PerlRun Memory leak upgrading from 1.99_14 to 2.0.0-RC1
Philippe M. Chiasson 18:59 on 04 Jan 2005

Generated at 12:16 on 16 Jan 2005 by mariachi v0.52