Re: 5.8.9 eating up memory with AUTOLOAD in DBD::Oracle

2009-04-01 Thread Scott T. Hildreth
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

2009-04-01 Thread Scott T. Hildreth

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

2009-04-01 Thread Scott T. Hildreth
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
.