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
 .
 
 


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
  .