Re: 5.8.9 eating up memory with AUTOLOAD in DBD::Oracle
On Wed, 2009-04-01 at 12:54 -0500, Scott T. Hildreth wrote: > Wanted to change the subject. > > > On Wed, 2009-04-01 at 11:11 -0500, Scott T. Hildreth wrote: > > Hello, > > > > I'm having a strange problem. I compiled 5.8.9 on SUSE Linux > > Enterprise Server 10 (x86_64), > > installed DBI & DBD::Oracle. We are running Oracle 11g on this server. > > Running a program that > > uses DBI/DBD::Oracle, the process locked the server up by using all the > > memory and swap. The server > > has 32 gig of memory and I believe 16 gig of swap. Running in the > > debugger, I isolated the problem in > > DBD/Oracle.pm, > > So, I asked our Dba to install the 10g client for me. I recompiled DBD::Oracle using the 10g client. Ran the same code and wa la. I really am not liking the 11g client libraries. > > my $oci = DBD::Oracle::ORA_OCI(); > > > > sub AUTOLOAD { > > (my $constname = $AUTOLOAD) =~ s/.*:://; > > my $val = constant($constname); > > *$AUTOLOAD = sub { $val }; > > goto &$AUTOLOAD; > > } > > > > AUTOLOAD loads DBD::Oracle::ORA_OCI, which triggers the loading of > > DBD::Oracle::constant. > > DBD::Oracle::constant is not found, so constant is loaded, not found, > > constant loadedetc > > I checked Oracle.so (just in case for some crazy reason constant didn't get > > in the so) it's > > there. What perplexes me is this perl install is the just like several > > other servers we have. > > The one big difference is there is an 11g Oracle server running on this > > box. I have the same > > set up on an open-SuSE box that works fine, but it is only using the 11g > > client. The only problems > > I had when compiling DBD::Oracle was the lob-plsql test failing, otherwise > > everything worked fine. > > I don't even know if Oracle is the issue here. Should I post to P5P? > > > > Thanks > > Scott > > > > Summary of my perl5 (revision 5 version 8 subversion 9) configuration: > > Platform: > > osname=linux, osvers=2.6.27.19, archname=x86_64-linux > > uname='linux srv12 2.6.27.19 #1 smp mon feb 23 16:46:24 cst 2009 > > x86_64 x86_64 x86_64 gnulinux ' > > config_args='-de -Dprefix=/usr/local/perl-5.8.9 > > -Dnoextensions=ODBM_File -Dlibpth=/usr/local/lib64 /lib64 /usr/lib64 > > -Dldflags=-L/usr/local/lib64 -Duse64bitall=define' > > hint=recommended, useposix=true, d_sigaction=define > > usethreads=undef use5005threads=undef useithreads=undef > > usemultiplicity=undef > > useperlio=define d_sfio=undef uselargefiles=define usesocks=undef > > use64bitint=define use64bitall=define uselongdouble=undef > > usemymalloc=n, bincompat5005=undef > > Compiler: > > cc='cc', ccflags ='-fno-strict-aliasing -pipe -I/usr/local/include > > -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', > > optimize='-O2', > > cppflags='-fno-strict-aliasing -pipe -I/usr/local/include' > > ccversion='', gccversion='4.1.2 20070115 (SUSE Linux)', 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 =' -L/usr/local/lib' > > libpth=/usr/local/lib /lib /usr/lib /lib64 /usr/lib64 /usr/local/lib64 > > libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc > > perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc > > libc=/lib/libc-2.4.so, so=so, useshrplib=false, libperl=libperl.a > > gnulibc_version='2.4' > > Dynamic Linking: > > dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E' > > cccdlflags='-fPIC', lddlflags='-shared -O2 -L/usr/local/lib' > > > > > > Characteristics of this binary (from libperl): > > Compile-time options: PERL_MALLOC_WRAP USE_64_BIT_ALL USE_64_BIT_INT > > USE_FAST_STDIO USE_LARGE_FILES USE_PERLIO > > Built under linux > > Compiled at Mar 31 2009 10:07:10 > > %ENV: > > PERL5LIB="/usr/local/lib/tools/perlmodules" > > @INC: > > /usr/local/lib/tools/perlmodules > > /usr/local/perl-5.8.9/lib/5.8.9/x86_64-linux > > /usr/local/perl-5.8.9/lib/5.8.9 > > /usr/local/perl-5.8.9/lib/site_perl/5.8.9/x86_64-linux > > /usr/local/perl-5.8.9/lib/site_perl/5.8.9 > > . > > > >
Re: 5.8.9 eating up memory with AUTOLOAD in DBD::Oracle
Wanted to change the subject. On Wed, 2009-04-01 at 11:11 -0500, Scott T. Hildreth wrote: > Hello, > > I'm having a strange problem. I compiled 5.8.9 on SUSE Linux Enterprise > Server 10 (x86_64), > installed DBI & DBD::Oracle. We are running Oracle 11g on this server. > Running a program that > uses DBI/DBD::Oracle, the process locked the server up by using all the > memory and swap. The server > has 32 gig of memory and I believe 16 gig of swap. Running in the debugger, > I isolated the problem in > DBD/Oracle.pm, > > my $oci = DBD::Oracle::ORA_OCI(); > > sub AUTOLOAD { > (my $constname = $AUTOLOAD) =~ s/.*:://; > my $val = constant($constname); > *$AUTOLOAD = sub { $val }; > goto &$AUTOLOAD; > } > > AUTOLOAD loads DBD::Oracle::ORA_OCI, which triggers the loading of > DBD::Oracle::constant. > DBD::Oracle::constant is not found, so constant is loaded, not found, > constant loadedetc > I checked Oracle.so (just in case for some crazy reason constant didn't get > in the so) it's > there. What perplexes me is this perl install is the just like several other > servers we have. > The one big difference is there is an 11g Oracle server running on this box. > I have the same > set up on an open-SuSE box that works fine, but it is only using the 11g > client. The only problems > I had when compiling DBD::Oracle was the lob-plsql test failing, otherwise > everything worked fine. > I don't even know if Oracle is the issue here. Should I post to P5P? > > Thanks > Scott > > Summary of my perl5 (revision 5 version 8 subversion 9) configuration: > Platform: > osname=linux, osvers=2.6.27.19, archname=x86_64-linux > uname='linux srv12 2.6.27.19 #1 smp mon feb 23 16:46:24 cst 2009 x86_64 > x86_64 x86_64 gnulinux ' > config_args='-de -Dprefix=/usr/local/perl-5.8.9 -Dnoextensions=ODBM_File > -Dlibpth=/usr/local/lib64 /lib64 /usr/lib64 -Dldflags=-L/usr/local/lib64 > -Duse64bitall=define' > hint=recommended, useposix=true, d_sigaction=define > usethreads=undef use5005threads=undef useithreads=undef > usemultiplicity=undef > useperlio=define d_sfio=undef uselargefiles=define usesocks=undef > use64bitint=define use64bitall=define uselongdouble=undef > usemymalloc=n, bincompat5005=undef > Compiler: > cc='cc', ccflags ='-fno-strict-aliasing -pipe -I/usr/local/include > -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', > optimize='-O2', > cppflags='-fno-strict-aliasing -pipe -I/usr/local/include' > ccversion='', gccversion='4.1.2 20070115 (SUSE Linux)', 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 =' -L/usr/local/lib' > libpth=/usr/local/lib /lib /usr/lib /lib64 /usr/lib64 /usr/local/lib64 > libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc > perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc > libc=/lib/libc-2.4.so, so=so, useshrplib=false, libperl=libperl.a > gnulibc_version='2.4' > Dynamic Linking: > dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E' > cccdlflags='-fPIC', lddlflags='-shared -O2 -L/usr/local/lib' > > > Characteristics of this binary (from libperl): > Compile-time options: PERL_MALLOC_WRAP USE_64_BIT_ALL USE_64_BIT_INT > USE_FAST_STDIO USE_LARGE_FILES USE_PERLIO > Built under linux > Compiled at Mar 31 2009 10:07:10 > %ENV: > PERL5LIB="/usr/local/lib/tools/perlmodules" > @INC: > /usr/local/lib/tools/perlmodules > /usr/local/perl-5.8.9/lib/5.8.9/x86_64-linux > /usr/local/perl-5.8.9/lib/5.8.9 > /usr/local/perl-5.8.9/lib/site_perl/5.8.9/x86_64-linux > /usr/local/perl-5.8.9/lib/site_perl/5.8.9 > . > >
5.8.9 eating up memory with AUTOLOAD
Hello, I'm having a strange problem. I compiled 5.8.9 on SUSE Linux Enterprise Server 10 (x86_64), installed DBI & DBD::Oracle. We are running Oracle 11g on this server. Running a program that uses DBI/DBD::Oracle, the process locked the server up by using all the memory and swap. The server has 32 gig of memory and I believe 16 gig of swap. Running in the debugger, I isolated the problem in DBD/Oracle.pm, my $oci = DBD::Oracle::ORA_OCI(); sub AUTOLOAD { (my $constname = $AUTOLOAD) =~ s/.*:://; my $val = constant($constname); *$AUTOLOAD = sub { $val }; goto &$AUTOLOAD; } AUTOLOAD loads DBD::Oracle::ORA_OCI, which triggers the loading of DBD::Oracle::constant. DBD::Oracle::constant is not found, so constant is loaded, not found, constant loadedetc I checked Oracle.so (just in case for some crazy reason constant didn't get in the so) it's there. What perplexes me is this perl install is the just like several other servers we have. The one big difference is there is an 11g Oracle server running on this box. I have the same set up on an open-SuSE box that works fine, but it is only using the 11g client. The only problems I had when compiling DBD::Oracle was the lob-plsql test failing, otherwise everything worked fine. I don't even know if Oracle is the issue here. Should I post to P5P? Thanks Scott Summary of my perl5 (revision 5 version 8 subversion 9) configuration: Platform: osname=linux, osvers=2.6.27.19, archname=x86_64-linux uname='linux srv12 2.6.27.19 #1 smp mon feb 23 16:46:24 cst 2009 x86_64 x86_64 x86_64 gnulinux ' config_args='-de -Dprefix=/usr/local/perl-5.8.9 -Dnoextensions=ODBM_File -Dlibpth=/usr/local/lib64 /lib64 /usr/lib64 -Dldflags=-L/usr/local/lib64 -Duse64bitall=define' hint=recommended, useposix=true, d_sigaction=define usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=define use64bitall=define uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O2', cppflags='-fno-strict-aliasing -pipe -I/usr/local/include' ccversion='', gccversion='4.1.2 20070115 (SUSE Linux)', 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 =' -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib /lib64 /usr/lib64 /usr/local/lib64 libs=-lnsl -lgdbm -ldb -ldl -lm -lcrypt -lutil -lc perllibs=-lnsl -ldl -lm -lcrypt -lutil -lc libc=/lib/libc-2.4.so, so=so, useshrplib=false, libperl=libperl.a gnulibc_version='2.4' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E' cccdlflags='-fPIC', lddlflags='-shared -O2 -L/usr/local/lib' Characteristics of this binary (from libperl): Compile-time options: PERL_MALLOC_WRAP USE_64_BIT_ALL USE_64_BIT_INT USE_FAST_STDIO USE_LARGE_FILES USE_PERLIO Built under linux Compiled at Mar 31 2009 10:07:10 %ENV: PERL5LIB="/usr/local/lib/tools/perlmodules" @INC: /usr/local/lib/tools/perlmodules /usr/local/perl-5.8.9/lib/5.8.9/x86_64-linux /usr/local/perl-5.8.9/lib/5.8.9 /usr/local/perl-5.8.9/lib/site_perl/5.8.9/x86_64-linux /usr/local/perl-5.8.9/lib/site_perl/5.8.9 .