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

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

am 04.10.2007 03:40:50 von p.mclarty

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

open("/usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi/CORE/ libclntsh.so.=
10.1", O_RDONLY) =3D -1 ENOENT (No such file or directory)
open("/usr/local/oracle/product/10g/srs/lib/libclntsh.so.10. 1", =
O_RDONLY) =3D 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\311"..., =
832) =3D 832
fstat(3, {st_dev=3Dmakedev(104, 2), st_ino=3D1583105, =
st_mode=3DS_IFREG|0750, st_nlink=3D1, st_uid=3D500, st_gid=3D501, =
st_blksize=3D4096, st_blocks=3D40792, st_size=3D20859839, =
st_atime=3D2007/10/04-08:23:43, st_mtime=3D2007/08/23-15:57:23, =
st_ctime=3D2007/08/23-16:05:28}) =3D 0
mmap(NULL, 20553416, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, =
0) =3D 0x2a98723000
mprotect(0x2a99907000, 1793736, PROT_NONE) =3D 0
mmap(0x2a99a07000, 667648, PROT_READ|PROT_WRITE, =
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11e4000) =3D 0x2a99a07000
mmap(0x2a99aaa000, 77512, PROT_READ|PROT_WRITE, =
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) =3D 0x2a99aaa000
close(3) =3D 0
open("/usr/local/oracle/product/10g/srs/lib/libnnz10.so", O_RDONLY) =3D =
3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\245\f"... , =
832) =3D 832
fstat(3, {st_dev=3Dmakedev(104, 2), st_ino=3D1583103, =
st_mode=3DS_IFREG|0644, st_nlink=3D1, st_uid=3D500, st_gid=3D501, =
st_blksize=3D4096, st_blocks=3D7448, st_size=3D3808761, =
st_atime=3D2007/10/04-08:23:43, st_mtime=3D2006/11/03-04:46:42, =
st_ctime=3D2007/08/23-16:05:28}) =3D 0
mmap(NULL, 4860216, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, =
0) =3D 0x2a99abd000
mprotect(0x2a99daf000, 1771832, PROT_NONE) =3D 0
mmap(0x2a99eae000, 724992, PROT_READ|PROT_WRITE, =
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2f1000) =3D 0x2a99eae000
mmap(0x2a99f5f000, 2360, PROT_READ|PROT_WRITE, =
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) =3D 0x2a99f5f000
close(3) =3D 0
mprotect(0x2a99abd000, 3088384, PROT_READ|PROT_WRITE) =3D 0
mprotect(0x2a99abd000, 3088384, PROT_READ|PROT_EXEC) =3D 0
mprotect(0x2a98723000, 18759680, PROT_READ|PROT_WRITE) =3D 0
mprotect(0x2a98723000, 18759680, PROT_READ|PROT_EXEC) =3D 0
mprotect(0x2a985f6000, 176128, PROT_READ|PROT_WRITE) =3D 0
mprotect(0x2a985f6000, 176128, PROT_READ|PROT_EXEC) =3D 0
write(2, "Had to create DBD::Oracle::dr::i"..., 140) =3D 140
write(2, "Use of uninitialized value in su"..., 129) =3D 129
brk(0x925000) =3D 0x925000
write(2, "Had to create DBD::Oracle::db::i"..., 140) =3D 140
write(2, "Use of uninitialized value in su"..., 129) =3D 129
write(2, "Undefined subroutine &DBD::Oracl"..., 139) =3D 139
open("/usr/share/locale/locale.alias", O_RDONLY) =3D 3
fstat(3, {st_dev=3Dmakedev(104, 1), st_ino=3D19664, =
st_mode=3DS_IFREG|0644, st_nlink=3D1, st_uid=3D0, st_gid=3D0, =
st_blksize=3D4096, st_blocks=3D16, st_size=3D2528, =
st_atime=3D2007/10/04-08:23:40, st_mtime=3D2006/02/09-09:02:24, =
st_ctime=3D2007/08/14-03:33:24}) =3D 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) =
=3D 0x2a99f60000
read(3, "# Locale name alias data base.\n#"..., 4096) =3D 2528
read(3, "", 4096) =3D 0
close(3) =3D 0
munmap(0x2a99f60000, 4096) =3D 0
open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) =3D =
-1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US.utf8/LC_MESSAGES/libc.mo", O_RDONLY) =3D =
-1 ENOENT (No such file or directory)
open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) =3D -1 =
ENOENT (No such file or directory)
open("/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) =3D -1 =
ENOENT (No such file or directory)
open("/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) =3D -1 =
ENOENT (No such file or directory)
open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) =3D -1 ENOENT =
(No such file or directory)
stat("/usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread -multi/auto/D=
BI/DESTROY.al", 0x504140) =3D -1 ENOENT (No such file or directory)
open("/usr/local/oracle/admin/scripts/auto/DBI/DESTROY.al", O_RDONLY) =
=3D -1 ENOENT (No such file or directory)
open("/usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi/auto/ DBI/DESTROY.a=
l", O_RDONLY) =3D -1 ENOENT (No such file or directory)
open("/usr/lib/perl5/5.8.5/auto/DBI/DESTROY.al", O_RDONLY) =3D -1 ENOENT =
(No such file or directory)
open("/usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-m ulti/auto/DBI=
/DESTROY.al", O_RDONLY) =3D -1 ENOENT (No such file or directory)
open("/usr/lib64/perl5/site_perl/5.8.4/x86_64-linux-thread-m ulti/auto/DBI=
/DESTROY.al", O_RDONLY) =3D -1 ENOENT (No such file or directory)
open("/usr/lib64/perl5/site_perl/5.8.3/x86_64-linux-thread-m ulti/auto/DBI=
/DESTROY.al", O_RDONLY) =3D -1 ENOENT (No such file or directory)
open("/usr/lib64/perl5/site_perl/5.8.2/x86_64-linux-thread-m ulti/auto/DBI=
/DESTROY.al", O_RDONLY) =3D -1 ENOENT (No such file or directory)
open("/usr/lib64/perl5/site_perl/5.8.1/x86_64-linux-thread-m ulti/auto/DBI=
/DESTROY.al", O_RDONLY) =3D -1 ENOENT (No such file or directory)
open("/usr/lib64/perl5/site_perl/5.8.0/x86_64-linux-thread-m ulti/auto/DBI=
/DESTROY.al", O_RDONLY) =3D -1 ENOENT (No such file or directory)
open("/usr/lib/perl5/site_perl/5.8.5/auto/DBI/DESTROY.al", O_RDONLY) =3D =
-1 ENOENT (No such file or directory)
open("/usr/lib/perl5/site_perl/5.8.4/auto/DBI/DESTROY.al", O_RDONLY) =3D =
-1 ENOENT (No such file or directory)
open("/usr/lib/perl5/site_perl/5.8.3/auto/DBI/DESTROY.al", O_RDONLY) =3D =
-1 ENOENT (No such file or directory)
open("/usr/lib/perl5/site_perl/5.8.2/auto/DBI/DESTROY.al", O_RDONLY) =3D =
-1 ENOENT (No such file or directory)
open("/usr/lib/perl5/site_perl/5.8.1/auto/DBI/DESTROY.al", O_RDONLY) =3D =
-1 ENOENT (No such file or directory)
open("/usr/lib/perl5/site_perl/5.8.0/auto/DBI/DESTROY.al", O_RDONLY) =3D =
-1 ENOENT (No such file or directory)
open("/usr/lib/perl5/site_perl/auto/DBI/DESTROY.al", O_RDONLY) =3D -1 =
ENOENT (No such file or directory)
open("/usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread -multi/auto/D=
BI/DESTROY.al", O_RDONLY) =3D -1 ENOENT (No such file or directory)
open("/usr/lib64/perl5/vendor_perl/5.8.4/x86_64-linux-thread -multi/auto/D=
BI/DESTROY.al", O_RDONLY) =3D -1 ENOENT (No such file or directory)
open("/usr/lib64/perl5/vendor_perl/5.8.3/x86_64-linux-thread -multi/auto/D=
BI/DESTROY.al", O_RDONLY) =3D -1 ENOENT (No such file or directory)
open("/usr/lib64/perl5/vendor_perl/5.8.2/x86_64-linux-thread -multi/auto/D=
BI/DESTROY.al", O_RDONLY) =3D -1 ENOENT (No such file or directory)
open("/usr/lib64/perl5/vendor_perl/5.8.1/x86_64-linux-thread -multi/auto/D=
BI/DESTROY.al", O_RDONLY) =3D -1 ENOENT (No such file or directory)
open("/usr/lib64/perl5/vendor_perl/5.8.0/x86_64-linux-thread -multi/auto/D=
BI/DESTROY.al", O_RDONLY) =3D -1 ENOENT (No such file or directory)
open("/usr/lib/perl5/vendor_perl/5.8.5/auto/DBI/DESTROY.al", O_RDONLY) =
=3D -1 ENOENT (No such file or directory)
open("/usr/lib/perl5/vendor_perl/5.8.4/auto/DBI/DESTROY.al", O_RDONLY) =
=3D -1 ENOENT (No such file or directory)
open("/usr/lib/perl5/vendor_perl/5.8.3/auto/DBI/DESTROY.al", O_RDONLY) =
=3D -1 ENOENT (No such file or directory)
open("/usr/lib/perl5/vendor_perl/5.8.2/auto/DBI/DESTROY.al", O_RDONLY) =
=3D -1 ENOENT (No such file or directory)
open("/usr/lib/perl5/vendor_perl/5.8.1/auto/DBI/DESTROY.al", O_RDONLY) =
=3D -1 ENOENT (No such file or directory)
open("/usr/lib/perl5/vendor_perl/5.8.0/auto/DBI/DESTROY.al", O_RDONLY) =
=3D -1 ENOENT (No such file or directory)
open("/usr/lib/perl5/vendor_perl/auto/DBI/DESTROY.al", O_RDONLY) =3D -1 =
ENOENT (No such file or directory)
open("./auto/DBI/DESTROY.al", O_RDONLY) =3D -1 ENOENT (No such file or =
directory)
exit_group(2) =20


And here is what is happening around the same place when it runs on the =
dual core systems

open("/usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi/CORE/ libclntsh.so.=
10.1", O_RDONLY) =3D -1 ENOENT (No such file or directory)
open("/usr/local/oracle/product/10g/db1/lib/libclntsh.so.10. 1", =
O_RDONLY) =3D 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\311"..., =
832) =3D 832
fstat(3, {st_dev=3Dmakedev(104, 2), st_ino=3D2173986, =
st_mode=3DS_IFREG|0750, st_nlink=3D1, st_uid=3D500, st_gid=3D501, =
st_blksize=3D4096, st_blocks=3D40800, st_size=3D20859839, =
st_atime=3D2007/10/04-08:24:15, st_mtime=3D2007/01/13-11:50:14, =
st_ctime=3D2007/09/01-02:00:47}) =3D 0
mmap(NULL, 20553416, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, =
0) =3D 0x2a98729000
mprotect(0x2a9990d000, 1793736, PROT_NONE) =3D 0
mmap(0x2a99a0d000, 667648, PROT_READ|PROT_WRITE, =
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11e4000) =3D 0x2a99a0d000
mmap(0x2a99ab0000, 77512, PROT_READ|PROT_WRITE, =
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) =3D 0x2a99ab0000
close(3) =3D 0
open("/usr/local/oracle/product/10g/db1/lib/libnnz10.so", O_RDONLY) =3D =
3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\245\f"... , =
832) =3D 832
fstat(3, {st_dev=3Dmakedev(104, 2), st_ino=3D2174113, =
st_mode=3DS_IFREG|0644, st_nlink=3D1, st_uid=3D500, st_gid=3D501, =
st_blksize=3D4096, st_blocks=3D7456, st_size=3D3808761, =
st_atime=3D2007/10/04-08:24:15, st_mtime=3D2006/11/03-04:46:42, =
st_ctime=3D2007/09/01-02:01:27}) =3D 0
mmap(NULL, 4860216, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, =
0) =3D 0x2a99ac3000
mprotect(0x2a99db5000, 1771832, PROT_NONE) =3D 0
mmap(0x2a99eb4000, 724992, PROT_READ|PROT_WRITE, =
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2f1000) =3D 0x2a99eb4000
mmap(0x2a99f65000, 2360, PROT_READ|PROT_WRITE, =
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) =3D 0x2a99f65000
close(3) =3D 0
mprotect(0x2a99ac3000, 3088384, PROT_READ|PROT_WRITE) =3D 0
mprotect(0x2a99ac3000, 3088384, PROT_READ|PROT_EXEC) =3D 0
mprotect(0x2a98729000, 18759680, PROT_READ|PROT_WRITE) =3D 0
mprotect(0x2a98729000, 18759680, PROT_READ|PROT_EXEC) =3D 0
mprotect(0x2a985f6000, 200704, PROT_READ|PROT_WRITE) =3D 0
mprotect(0x2a985f6000, 200704, PROT_READ|PROT_EXEC) =3D 0
brk(0x925000) =3D 0x925000
mmap(NULL, 143360, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, =
0) =3D 0x2a99f66000
open("/usr/local/oracle/product/10g/db1/lib/libociei.so", O_RDONLY) =3D =
-1 ENOENT (No such file or directory)
open("/usr/local/oracle/product/10g/db1/lib/libociicus.so", O_RDONLY) =
=3D -1 ENOENT (No such file or directory)
open("/usr/local/oracle/product/10g/db1/nls/data/lx1boot.nlb ", O_RDONLY) =
=3D 3
read(3, "\0\0\0\3\0\3 \n\20W\0\0(\307\215\0\0\0\0\0\1\0C\0\273\0"..., =
48) =3D 48
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., =
22240) =3D 22240
close(3) =20

If someone can point me in the direction of where to even look to =
verifiying this as a bug in these servers (highly likely) or what is =
missing or wrong it would be appreciated

uname -a=20
2.6.9-34.ELsmp #1 SMP Fri Feb 24 16:56:28 EST 2006 x86_64 x86_64 x86_64 =
GNU/Linux

]# perl -v

This is perl, v5.8.5 built for x86_64-linux-thread-multi

Perl modules have been installed as root and this is being run nunder =
the oracle user which installed the Oracle executables



Cheers

--=20
Peter McLarty
Database Administrator
Student System Upgrade Project
Central Queensland University

=A0 Email:=A0 p.mclarty@cqu.edu.au
=A0Phone:=A0 07 4923 2876
   Fax:=A0 07 4923 2721
Mobile:=A0 04 0209 4238
=20

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

am 05.10.2007 10:07:48 von Martin.Evans

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
>
> open("/usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi/CORE/ libclntsh.so.10.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/local/oracle/product/10g/srs/lib/libclntsh.so.10. 1", O_RDONLY) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\311"..., 832) = 832
> fstat(3, {st_dev=makedev(104, 2), st_ino=1583105, st_mode=S_IFREG|0750, st_nlink=1, st_uid=500, st_gid=501, st_blksize=4096, st_blocks=40792, st_size=20859839, st_atime=2007/10/04-08:23:43, st_mtime=2007/08/23-15:57:23, st_ctime=2007/08/23-16:05:28}) = 0
> mmap(NULL, 20553416, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2a98723000
> mprotect(0x2a99907000, 1793736, PROT_NONE) = 0
> mmap(0x2a99a07000, 667648, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11e4000) = 0x2a99a07000
> mmap(0x2a99aaa000, 77512, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2a99aaa000
> close(3) = 0
> open("/usr/local/oracle/product/10g/srs/lib/libnnz10.so", O_RDONLY) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\245\f"... , 832) = 832
> fstat(3, {st_dev=makedev(104, 2), st_ino=1583103, st_mode=S_IFREG|0644, st_nlink=1, st_uid=500, st_gid=501, st_blksize=4096, st_blocks=7448, st_size=3808761, st_atime=2007/10/04-08:23:43, st_mtime=2006/11/03-04:46:42, st_ctime=2007/08/23-16:05:28}) = 0
> mmap(NULL, 4860216, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2a99abd000
> mprotect(0x2a99daf000, 1771832, PROT_NONE) = 0
> mmap(0x2a99eae000, 724992, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2f1000) = 0x2a99eae000
> mmap(0x2a99f5f000, 2360, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2a99f5f000
> close(3) = 0
> mprotect(0x2a99abd000, 3088384, PROT_READ|PROT_WRITE) = 0
> mprotect(0x2a99abd000, 3088384, PROT_READ|PROT_EXEC) = 0
> mprotect(0x2a98723000, 18759680, PROT_READ|PROT_WRITE) = 0
> mprotect(0x2a98723000, 18759680, PROT_READ|PROT_EXEC) = 0
> mprotect(0x2a985f6000, 176128, PROT_READ|PROT_WRITE) = 0
> mprotect(0x2a985f6000, 176128, PROT_READ|PROT_EXEC) = 0
> 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
> open("/usr/share/locale/locale.alias", O_RDONLY) = 3
> fstat(3, {st_dev=makedev(104, 1), st_ino=19664, st_mode=S_IFREG|0644, st_nlink=1, st_uid=0, st_gid=0, st_blksize=4096, st_blocks=16, st_size=2528, st_atime=2007/10/04-08:23:40, st_mtime=2006/02/09-09:02:24, st_ctime=2007/08/14-03:33:24}) = 0
> mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2a99f60000
> read(3, "# Locale name alias data base.\n#"..., 4096) = 2528
> read(3, "", 4096) = 0
> close(3) = 0
> munmap(0x2a99f60000, 4096) = 0
> open("/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/share/locale/en_US.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
> stat("/usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread -multi/auto/DBI/DESTROY.al", 0x504140) = -1 ENOENT (No such file or directory)
> open("/usr/local/oracle/admin/scripts/auto/DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi/auto/ DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/lib/perl5/5.8.5/auto/DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-m ulti/auto/DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/lib64/perl5/site_perl/5.8.4/x86_64-linux-thread-m ulti/auto/DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/lib64/perl5/site_perl/5.8.3/x86_64-linux-thread-m ulti/auto/DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/lib64/perl5/site_perl/5.8.2/x86_64-linux-thread-m ulti/auto/DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/lib64/perl5/site_perl/5.8.1/x86_64-linux-thread-m ulti/auto/DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/lib64/perl5/site_perl/5.8.0/x86_64-linux-thread-m ulti/auto/DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/lib/perl5/site_perl/5.8.5/auto/DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/lib/perl5/site_perl/5.8.4/auto/DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/lib/perl5/site_perl/5.8.3/auto/DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/lib/perl5/site_perl/5.8.2/auto/DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/lib/perl5/site_perl/5.8.1/auto/DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/lib/perl5/site_perl/5.8.0/auto/DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/lib/perl5/site_perl/auto/DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/lib64/perl5/vendor_perl/5.8.5/x86_64-linux-thread -multi/auto/DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/lib64/perl5/vendor_perl/5.8.4/x86_64-linux-thread -multi/auto/DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/lib64/perl5/vendor_perl/5.8.3/x86_64-linux-thread -multi/auto/DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/lib64/perl5/vendor_perl/5.8.2/x86_64-linux-thread -multi/auto/DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/lib64/perl5/vendor_perl/5.8.1/x86_64-linux-thread -multi/auto/DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/lib64/perl5/vendor_perl/5.8.0/x86_64-linux-thread -multi/auto/DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/lib/perl5/vendor_perl/5.8.5/auto/DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/lib/perl5/vendor_perl/5.8.4/auto/DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/lib/perl5/vendor_perl/5.8.3/auto/DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/lib/perl5/vendor_perl/5.8.2/auto/DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/lib/perl5/vendor_perl/5.8.1/auto/DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/lib/perl5/vendor_perl/5.8.0/auto/DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/lib/perl5/vendor_perl/auto/DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("./auto/DBI/DESTROY.al", O_RDONLY) = -1 ENOENT (No such file or directory)
> exit_group(2)
>
>
> And here is what is happening around the same place when it runs on the dual core systems
>
> open("/usr/lib64/perl5/5.8.5/x86_64-linux-thread-multi/CORE/ libclntsh.so.10.1", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/local/oracle/product/10g/db1/lib/libclntsh.so.10. 1", O_RDONLY) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\340\311"..., 832) = 832
> fstat(3, {st_dev=makedev(104, 2), st_ino=2173986, st_mode=S_IFREG|0750, st_nlink=1, st_uid=500, st_gid=501, st_blksize=4096, st_blocks=40800, st_size=20859839, st_atime=2007/10/04-08:24:15, st_mtime=2007/01/13-11:50:14, st_ctime=2007/09/01-02:00:47}) = 0
> mmap(NULL, 20553416, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2a98729000
> mprotect(0x2a9990d000, 1793736, PROT_NONE) = 0
> mmap(0x2a99a0d000, 667648, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11e4000) = 0x2a99a0d000
> mmap(0x2a99ab0000, 77512, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2a99ab0000
> close(3) = 0
> open("/usr/local/oracle/product/10g/db1/lib/libnnz10.so", O_RDONLY) = 3
> read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000\245\f"... , 832) = 832
> fstat(3, {st_dev=makedev(104, 2), st_ino=2174113, st_mode=S_IFREG|0644, st_nlink=1, st_uid=500, st_gid=501, st_blksize=4096, st_blocks=7456, st_size=3808761, st_atime=2007/10/04-08:24:15, st_mtime=2006/11/03-04:46:42, st_ctime=2007/09/01-02:01:27}) = 0
> mmap(NULL, 4860216, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x2a99ac3000
> mprotect(0x2a99db5000, 1771832, PROT_NONE) = 0
> mmap(0x2a99eb4000, 724992, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2f1000) = 0x2a99eb4000
> mmap(0x2a99f65000, 2360, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2a99f65000
> close(3) = 0
> mprotect(0x2a99ac3000, 3088384, PROT_READ|PROT_WRITE) = 0
> mprotect(0x2a99ac3000, 3088384, PROT_READ|PROT_EXEC) = 0
> mprotect(0x2a98729000, 18759680, PROT_READ|PROT_WRITE) = 0
> mprotect(0x2a98729000, 18759680, PROT_READ|PROT_EXEC) = 0
> mprotect(0x2a985f6000, 200704, PROT_READ|PROT_WRITE) = 0
> mprotect(0x2a985f6000, 200704, PROT_READ|PROT_EXEC) = 0
> brk(0x925000) = 0x925000
> mmap(NULL, 143360, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2a99f66000
> open("/usr/local/oracle/product/10g/db1/lib/libociei.so", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/local/oracle/product/10g/db1/lib/libociicus.so", O_RDONLY) = -1 ENOENT (No such file or directory)
> open("/usr/local/oracle/product/10g/db1/nls/data/lx1boot.nlb ", O_RDONLY) = 3
> read(3, "\0\0\0\3\0\3 \n\20W\0\0(\307\215\0\0\0\0\0\1\0C\0\273\0"..., 48) = 48
> read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 22240) = 22240
> close(3)
>
> If someone can point me in the direction of where to even look to verifiying this as a bug in these servers (highly likely) or what is missing or wrong it would be appreciated
>
> uname -a
> 2.6.9-34.ELsmp #1 SMP Fri Feb 24 16:56:28 EST 2006 x86_64 x86_64 x86_64 GNU/Linux
>
> ]# perl -v
>
> This is perl, v5.8.5 built for x86_64-linux-thread-multi
>
> Perl modules have been installed as root and this is being run nunder the oracle user which installed the Oracle executables
>
>
>
> Cheers
>

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

Martin
--
Martin J. Evans
Easysoft Limited
http://www.easysoft.com

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

am 05.10.2007 10:45:46 von Tim.Bunce

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.

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

am 10.10.2007 09:22:08 von p.mclarty

Hello,=20

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 =3D> 2, RaiseError =3D> 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=3D5.008005 pid=3D18625
ruid=3D500 euid=3D500
install_driver: DBD::Oracle version 1.19 loaded from
/usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi/D BD/Oracle.pm
New DBI::dr (for DBD::Oracle::dr, parent=3D, id=3D)
=
dbih_setup_handle(DBI::dr=3DHASH(0x698190)=3D>DBI::dr=3DHASH (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
-> STORE in DBD::_::common for DBD::Oracle::dr
(DBI::dr=3DHASH(0x698190)~0x7809e0 'ShowErrorStatement' 1) thr#504010
STORE DBI::dr=3DHASH(0x7809e0) 'ShowErrorStatement' =3D> 1
<- STORE=3D 1 at Oracle.pm line 61
<- install_driver=3D DBI::dr=3DHASH(0x698190)
-> connect for DBD::Oracle::dr (DBI::dr=3DHASH(0x698190)~0x7809e0
'CS89PROD' '/' **** HASH(0x784020)) thr#504010
New DBI::db (for DBD::Oracle::db, parent=3DDBI::dr=3DHASH(0x7809e0),
id=3D)
=
dbih_setup_handle(DBI::db=3DHASH(0x7809a0)=3D>DBI::db=3DHASH (0x784000),
DBD::Oracle::db, 694c30, Null!)
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.
dbih_make_com(DBI::dr=3DHASH(0x7809e0), 775970, DBD::Oracle::db, =
196,
0) thr#504010
Undefined subroutine &DBD::Oracle::db::_login called at
/usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi/D BD/Oracle.pm
line 222.
<> DESTROY ignored for outer handle DBI::db=3DHASH(0x7809a0) (inner
DBI::db=3DHASH(0x784000))
-> DESTROY for DBD::Oracle::db (DBI::db=3DHASH(0x784000)~INNER)
thr#504010
<- DESTROY=3D (not implemented)
dbih_clearcom 0x7809a0 (com 0x784f90, type 2) done.

-- DBI::END
-> disconnect_all for DBD::Oracle::dr
(DBI::dr=3DHASH(0x698190)~0x7809e0) thr#504010
<- disconnect_all=3D (not implemented) at DBI.pm line 659 via -e =
line
0
! -> DESTROY for DBD::Oracle::dr (DBI::dr=3DHASH(0x7809e0)~INNER)
thr#504010
! <- DESTROY=3D (not implemented) during global destruction
dbih_clearcom 0x698190 (com 0x775970, type 1) done.

! <> DESTROY for DBI::dr=3DHASH(0x698190) ignored (inner handle gone)

This was run as oracle the user so it owns the oracle libraries.it needs
to use.

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


Cheers=20


Peter


-----Original Message-----
From: Tim Bunce [mailto:Tim.Bunce@pobox.com]=20
Sent: Friday, 5 October 2007 06:46 PM
To: Martin Evans
Cc: dbi-users@perl.org
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=20
> >dual core 64bit Xeon CPU servers and with as best as we can tell an=20
> >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=20
> >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=20
> >of code that simply connects the the system as / and runs select *=20
> >from dual as well as then would do a couple of log switches
>=20
> It may be easier to diagnose with a DBI trace instead of an strace=20
> (see DBI_TRACE in DBI pod). In particular what are the full errors
here:
>=20
> write(2, "Had to create DBD::Oracle::dr::i"..., 140) =3D 140 write(2,=20
> "Use of uninitialized value in su"..., 129) =3D 129
> brk(0x925000) =3D 0x925000
> write(2, "Had to create DBD::Oracle::db::i"..., 140) =3D 140 write(2,=20
> "Use of uninitialized value in su"..., 129) =3D 129 write(2, =
"Undefined=20
> subroutine &DBD::Oracl"..., 139) =3D 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.

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

am 10.10.2007 11:33:45 von Tim.Bunce

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/D BD/Oracle.pm
> New DBI::dr (for DBD::Oracle::dr, parent=, id=)
> dbih_setup_handle(DBI::dr=HASH(0x698190)=>DBI::dr=HASH(0x780 9e0), 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/D BD/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@pobox.com]
> Sent: Friday, 5 October 2007 06:46 PM
> To: Martin Evans
> Cc: dbi-users@perl.org
> 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.

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

am 10.10.2007 13:27:40 von scoles

Looks like the 64 bit perl vs 32 bit .pms issuesthat is croping up more and
more.
So I would go back one more step at remove all the DBI and get the source
and recompile and insall. the DBD::Oracle again.


What you might want to try is
Not sure what the cure for this is??
""Peter McLarty"" wrote in message
news:27AA2E9CA7A0C44283BC1E9B00086AA9084E17A7@UNIMAIL.staff. ad.cqu.edu.au...
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/D BD/Oracle.pm
New DBI::dr (for DBD::Oracle::dr, parent=, id=)
dbih_setup_handle(DBI::dr=HASH(0x698190)=>DBI::dr=HASH(0x780 9e0),
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
-> STORE in DBD::_::common for DBD::Oracle::dr
(DBI::dr=HASH(0x698190)~0x7809e0 'ShowErrorStatement' 1) thr#504010
STORE DBI::dr=HASH(0x7809e0) 'ShowErrorStatement' => 1
<- STORE= 1 at Oracle.pm line 61
<- install_driver= DBI::dr=HASH(0x698190)
-> connect for DBD::Oracle::dr (DBI::dr=HASH(0x698190)~0x7809e0
'CS89PROD' '/' **** HASH(0x784020)) thr#504010
New DBI::db (for DBD::Oracle::db, parent=DBI::dr=HASH(0x7809e0),
id=)
dbih_setup_handle(DBI::db=HASH(0x7809a0)=>DBI::db=HASH(0x784 000),
DBD::Oracle::db, 694c30, Null!)
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.
dbih_make_com(DBI::dr=HASH(0x7809e0), 775970, DBD::Oracle::db, 196,
0) thr#504010
Undefined subroutine &DBD::Oracle::db::_login called at
/usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi/D BD/Oracle.pm
line 222.
<> DESTROY ignored for outer handle DBI::db=HASH(0x7809a0) (inner
DBI::db=HASH(0x784000))
-> DESTROY for DBD::Oracle::db (DBI::db=HASH(0x784000)~INNER)
thr#504010
<- DESTROY= (not implemented)
dbih_clearcom 0x7809a0 (com 0x784f90, type 2) done.

-- DBI::END
-> disconnect_all for DBD::Oracle::dr
(DBI::dr=HASH(0x698190)~0x7809e0) thr#504010
<- disconnect_all= (not implemented) at DBI.pm line 659 via -e line
0
! -> DESTROY for DBD::Oracle::dr (DBI::dr=HASH(0x7809e0)~INNER)
thr#504010
! <- DESTROY= (not implemented) during global destruction
dbih_clearcom 0x698190 (com 0x775970, type 1) done.

! <> DESTROY for DBI::dr=HASH(0x698190) ignored (inner handle gone)

This was run as oracle the user so it owns the oracle libraries.it needs
to use.

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


Cheers


Peter


-----Original Message-----
From: Tim Bunce [mailto:Tim.Bunce@pobox.com]
Sent: Friday, 5 October 2007 06:46 PM
To: Martin Evans
Cc: dbi-users@perl.org
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.

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

am 11.10.2007 06:11:02 von p.mclarty

Just a wrap up for those that are going to fall prey to this gremlin.

I took over the issue from the SA and removed DBI and DBD from the @inc
paths and then reinstalled them initially it didn't work
As it turned out these DBD files had been installed on a dual core
server and there was some files that had something in then that worked
on a dual core but wont work on a quad core

Resolution run make clean on DBD, and install.
End result we have removed the installed DBI rpm and installed the
latest DBI from CPAN, and then we installed the latest DBD::Oracle from
CPAN.

Seems there is a gremlin that means peoples out there, you may need dual
core rpm's and quad core rpm's. Now that sounds like fun.
Hopefully this will help someone


Cheers


Peter



-----Original Message-----
From: Tim Bunce [mailto:Tim.Bunce@pobox.com]=20
Sent: Wednesday, 10 October 2007 07:34 PM
To: Peter McLarty
Cc: Tim Bunce; Martin Evans; dbi-users@perl.org
Subject: 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,
>=20
> 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=20
> installed anyway Here is a trace, from an attempt to connect
>=20
> perl -MDBI -e 'DBI->trace(4); DBI->connect("dbi:Oracle:CS89PROD",
"/","",{ora_session_mode =3D> 2, RaiseError =3D> 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=3D5.008005 =
pid=3D18625
ruid=3D500 euid=3D500
> install_driver: DBD::Oracle version 1.19 loaded from
/usr/lib64/perl5/site_perl/5.8.5/x86_64-linux-thread-multi/D BD/Oracle.pm
> New DBI::dr (for DBD::Oracle::dr, parent=3D, id=3D)
> =
dbih_setup_handle(DBI::dr=3DHASH(0x698190)=3D>DBI::dr=3DHASH (0x7809e0),=20
> 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/D BD/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=20
> connect to appears to have 32 bit Perl installed and the same one=20
> liner runs fine in it
>=20
> If you can point me as to how we get down to finding the files,=20
> 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@pobox.com]
> Sent: Friday, 5 October 2007 06:46 PM
> To: Martin Evans
> Cc: dbi-users@perl.org
> Subject: Re: DBI and DBD::Oracle throw error Had to create=20
> DBD::Oracle::dr::imp_data_size unexpectedly
>=20
> 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=20
> > >and
>=20
> > >DBD::Oracle to access our 10.2.0.3 databases.
> > >The script was built and tested and has been used successfully on=20
> > >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=20
> > >fails
>=20
> > >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=20
> > >piece of code that simply connects the the system as / and runs=20
> > >select * from dual as well as then would do a couple of log=20
> > >switches
> >=20
> > It may be easier to diagnose with a DBI trace instead of an strace=20
> > (see DBI_TRACE in DBI pod). In particular what are the full errors
> here:
> >=20
> > write(2, "Had to create DBD::Oracle::dr::i"..., 140) =3D 140 =
write(2,=20
> > "Use of uninitialized value in su"..., 129) =3D 129
> > brk(0x925000) =3D 0x925000
> > write(2, "Had to create DBD::Oracle::db::i"..., 140) =3D 140 =
write(2,=20
> > "Use of uninitialized value in su"..., 129) =3D 129 write(2,=20
> > "Undefined subroutine &DBD::Oracl"..., 139) =3D 139
>=20
> The problem will be some kind of mismatch between the Oracle.pm and=20
> Oracle.so (.sl / .whatever extension your shared libraries have).
>=20
> I suggest you carefully find and remove all traces of DBD::Oracle and=20
> reinstall it. (Mainly delete all files under all perl @INC dirs that=20
> match DBD/Oracle.*)
>=20
> If you still have problems after that then post a one liner that=20
> demonstrates the problem:
>=20
> perl -MDBI -e 'DBI->connect("...", ...)'
>=20
> and we'll talk you through getting more info to diagnose the problem.
>=20
> Tim.