Re: DBI and DBD::Oracle throw error Had to create DBD::Oracle::dr::imp_data_size unexpectedly



On Wed, Oct 10, 2007 at 05:22:08PM +1000, Peter McLarty wrote:
Hello,

Well I have had to wait for the sysadmins to do this, but we have done
as you recommended and removed all the dbd and then tried doing a make
on the system of the dbd to build a new one.
It has errors relating to the same problem, but we pressed on and
installed anyway
Here is a trace, from an attempt to connect

perl -MDBI -e 'DBI->trace(4); DBI->connect("dbi:Oracle:CS89PROD", "/","",{ora_session_mode => 2, RaiseError => 1});'
DBI 1.40-ithread dispatch trace level set to 4 (in pid 18625)
Note: perl is running without the recommended perl -w option
-> DBI->connect(dbi:Oracle:CS89PROD, /, ****, HASH(0x505290))
-> DBI->install_driver(Oracle) for linux perl=5.008005 pid=18625 ruid=500 euid=500
install_driver: DBD::Oracle version 1.19 loaded from /usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi/DBD/Oracle.pm
New DBI::dr (for DBD::Oracle::dr, parent=, id=)
dbih_setup_handle(DBI::dr=HASH(0x698190)=>DBI::dr=HASH(0x7809e0), DBD::Oracle::dr, 0, Null!)
Had to create DBD::Oracle::dr::imp_data_size unexpectedly at /usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi/DBI.pm line 1063.
dbih_make_com(Null!, 0, DBD::Oracle::dr, 196, 0) thr#504010

Had to create DBD::Oracle::db::imp_data_size unexpectedly at /usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread-multi/DBI.pm line 1063.

Undefined subroutine &DBD::Oracle::db::_login called at /usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi/DBD/Oracle.pm line 222.

These warnings and errors are symptoms of the DBD/Oracle.so file either
not being loaded or the wrong one being loaded.

Interestingly the ORACLE_HOME that the database we are trying to connect
to appears to have 32 bit Perl installed and the same one liner runs
fine in it

If you can point me as to how we get down to finding the files,
permissions that cause the error it would be appreciated

Start by setting the PERL_DL_DEBUG env var to 1 and rerun the command.
It'll show you which DBD/Oracle.so file is being loaded.

Also try running

perl -Mblib -MDBI -e ...

in the DBD::Oracle build directory, also with the PERL_DL_DEBUG env var to 1.

Tim.

-----Original Message-----
From: Tim Bunce [mailto:Tim.Bunce@xxxxxxxxx]
Sent: Friday, 5 October 2007 06:46 PM
To: Martin Evans
Cc: dbi-users@xxxxxxxx
Subject: Re: DBI and DBD::Oracle throw error Had to create
DBD::Oracle::dr::imp_data_size unexpectedly

On Fri, Oct 05, 2007 at 09:07:48AM +0100, Martin Evans wrote:
Peter McLarty wrote:
Hi
Running some redhat servers and created some scripts that use DBI and

DBD::Oracle to access our 10.2.0.3 databases.
The script was built and tested and has been used successfully on
dual core 64bit Xeon CPU servers and with as best as we can tell an
identical installation on some new quad core servers the script fails

with the above error.

We have tried a later version of DBI we were using the 1.40 version
installed as a RPM and have installed 1.59 using perl and make.

DBD::Oracle is 1.19

I have some strace output from where it fails running a simple piece
of code that simply connects the the system as / and runs select *
from dual as well as then would do a couple of log switches

It may be easier to diagnose with a DBI trace instead of an strace
(see DBI_TRACE in DBI pod). In particular what are the full errors
here:

write(2, "Had to create DBD::Oracle::dr::i"..., 140) = 140 write(2,
"Use of uninitialized value in su"..., 129) = 129
brk(0x925000) = 0x925000
write(2, "Had to create DBD::Oracle::db::i"..., 140) = 140 write(2,
"Use of uninitialized value in su"..., 129) = 129 write(2, "Undefined
subroutine &DBD::Oracl"..., 139) = 139

The problem will be some kind of mismatch between the Oracle.pm and
Oracle.so (.sl / .whatever extension your shared libraries have).

I suggest you carefully find and remove all traces of DBD::Oracle and
reinstall it. (Mainly delete all files under all perl @INC dirs that
match DBD/Oracle.*)

If you still have problems after that then post a one liner that
demonstrates the problem:

perl -MDBI -e 'DBI->connect("...", ...)'

and we'll talk you through getting more info to diagnose the problem.

Tim.
.



Relevant Pages

  • status on DBI installation on AIX 5.2
    ... I have compiled successfully the DBI by following your suggestion. ... when I re-built Perl 5.8.7 from source code, ... I tried Perl 5.8.6 installation from source code, ... Onderwerp: RE: DBI installation failure on AIX 5.2, ...
    (perl.dbi.users)
  • RE: DBI and DBD::Oracle throw error Had to create DBD::Oracle::dr::imp_data_size unexpectedly
    ... on the system of the dbd to build a new one. ... perl is running without the recommended perl -w option ... Subject: DBI and DBD::Oracle throw error Had to create ... identical installation on some new quad core servers the script fails ...
    (perl.dbi.users)
  • RE: Trying to make DBI work for me
    ... leaving something behind that conflicts with the new installation. ... Everything worked fine if we unstalled perl 5.6, ... directory, installed perl 5.8, and reloaded the DBI and DBD modules. ... Using 'ppm uninstall DBI' I uninstalled DBI. ...
    (perl.dbi.users)
  • Informix DBD (on Win2k) build problems and solutions (or saving the world)
    ... >> The DBD make process makes several references to this path but does not ... Suggested Fixes/changes to called Perl lib modules ... I believe that the points in this section would be primarily of interest to "would-be" DBD-on-Win2K builders, or Informix DBD builders. ... My MSVC++ installation process apparently did not update my PATH to support the compiler command line tools needed by the esql test and build processes. ...
    (perl.dbi.users)
  • Make test errors in DBI, DBD::Informix
    ... I have two different platforms for which I'm installing and running Perl DBI ... It's possible the installation is fine and that the missing Test::More ... which target directories I want. ...
    (perl.dbi.users)