Thread

Posted on Sat Dec 9 01:32:59 2006 by abomash
Out of memory error when using DBDOracle and ARS together
while working on SunSolaris 10 [SunOS 5.10 Generic_118833-17 sun4u sparc SUNW,Sun-Fire-V240] with Oracle 9i and Remedy 6.3 installed I have an error, when using DBD::Oracle 1.19 and ARSPerl 1.85 simultaneously:

"Out of memory! Callback called exit. END failed--call queue aborted. "

The code executed is the following:

#########

use DBD::Oracle; use ARS; [connect to oracle database using DBDOracle 1.19] [connect to remedy using ver. 1.85, ARS::ars_Login ( "servername", "user", "passw" ); using same oracle database and ARSperl api ] do some query stuff...

results in "Out of memory!..." error when disconnecting from oracle

##############

there is no error if DBDOracle is used alone without ARS calls;

in the same time, it seems that both modules are working OK together if the following line in the END{} sub in Oracle.pm module below is commented out:

$ENV{PERL_BADFREE} = 0;

so, the questions are:

1. any ideas what could be the reason for those errors, incopatibility between DBD and ARS installed on Solaris 10 with 64 bit integers? [on solaris 8, Oracle 8i, DBDOracle 1.15 and ARS 1.5X there were no errors like that! ]

2. what is the role of the environment setting above in Oracle.pm module ?

3. What is your opinion: is it safe [ in terms of memory leaks, etc ] just to comment out the above line of code permanently in Oracle.pm?

if YES, then for what platforms: Solaris9 or 10, oracle 9i or 10?

Thank you in advance!

A.B

############ END { # Used to silence 'Bad free() ...' warnings caused by bugs in Oracle's code # being detected by Perl's malloc. # $ENV{PERL_BADFREE} = 0; #undef $Win32::TieRegistry::Registry if $Win32::TieRegistry::Registry; }

Direct Responses: 3831 | Write a response
Posted on Mon Dec 18 13:45:01 2006 by byterock in response to 3741
Re: Out of memory error when using DBDOracle and ARS together
That is a tough one. Never played whit ARSPerl before so I an not sure what it does. Any here is my best shot at it 1) PERL_BADFREE is there to cover some bugs with older OCIs so that covers 1 & 2 not sure exactly what it does as it was in there before I became the maintainer of DBD:Oracle 2) If Commenting it out works that I would do that as this like I said was a kludge for earler OCI APIs bugs, as you are using the latest OCI I should work for you. PERL_BADFREE has been in the code since 1.06 (2000) and likly before that so I do not think it will be an issue for you on more advanced platfores like 9i etc. By the way you would be much better off posting your question to dbi-users@perl.org (you don't need to subscribe in order to post, and you won't be automatically subscribed either as very few people use this form for dbi or driver support. dbi-users is where you'll get the best support
Write a response