[prev in list] [next in list] [prev in thread] [next in thread]
List: dbi-users
Subject: 5.8.9 eating up memory with AUTOLOAD
From: "Scott T. Hildreth" <shildret () scotth ! emsphone ! com>
Date: 2009-04-01 16:11:59
Message-ID: 1238602319.69487.1892.camel () scotth ! emsphone ! com
[Download RAW message or body]
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 loaded....etc 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
.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic