Skip Menu |

Preferred bug tracker

Please visit the preferred bug tracker to report your issue.

This queue is for tickets about the DBD-Oracle CPAN distribution.

Report information
The Basics
Id: 69059
Status: resolved
Priority: 0/
Queue: DBD-Oracle

People
Owner: Nobody in particular
Requestors: blentz [...] cswg.com
Cc:
AdminCc:

Bug Information
Severity: Important
Broken in:
  • 1.27
  • 1.28
Fixed in: 1.47_00



Subject: Build fails on AIX 5.3 against Oracle Client 10.2.0.1 with rtld: 0712-001 Symbol OCIPing was referenced
Building Oracle::DBD version 1.23 against Oracle 10.2.0 client on AIX 5.3 TL 12 SP 2 works fine. Building Oracle::DBD version 1.23 against Oracle 10.2.0 client on AIX 5.3 TL 12 SP 2 is broken. Aside from the "normal" build failures which are addressed in the documentation, a new issue has been presented starting with version 1.27 and 1.28. I have run perl Makefile.PL -s OCIPing and it did not produce any interesting results. root@khqaixappsrv06dev>/orasoft/product/10.2.0/bin/sqlplus -version SQL*Plus: Release 10.2.0.1.0 - Production root@khqaixappsrv06dev>make test PERL_DL_NONLAZY=1 /usr/opt/perl5/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/01base.t .............. 1/6 # Test loading DBI, DBD::Oracle and version # Failed test 'install_driver' # at t/01base.t line 22. Failed to load Oracle extension and/or shared libraries: install_driver(Oracle) failed: Can't load '/.cpan/build/DBD-Oracle-1.28-o7hzsk/blib/arch/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: rtld: 0712-001 Symbol OCIPing was referenced from module /.cpan/build/DBD-Oracle-1.28-o7hzsk/blib/arch/auto/DBD/Oracle/Oracle.so(), but a runtime definition of the symbol was not found. at /usr/opt/perl5/lib/5.8.8/aix-thread-multi/DynaLoader.pm line 230. at (eval 8) line 3 Compilation failed in require at (eval 8) line 3. Perhaps a required shared library or dll isn't installed where expected at t/01base.t line 19 The remaining tests will probably also fail with the same error. *** Please read the README and README.help.txt files for help. *** I have backed out this version and have gone back to 1.23 on my systems as a result. Please advise.
From: blentz [...] cswg.com
Correction: Building Oracle::DBD version 1.23 against Oracle 10.2.0 client on AIX 5.3 TL 12 SP 2 works fine. Building Oracle::DBD version 1.28 against Oracle 10.2.0 client on AIX 5.3 TL 12 SP 2 is broken. Sorry for any confusion. On Thu Jun 23 17:55:43 2011, blentz wrote: Show quoted text
> Building Oracle::DBD version 1.23 against Oracle 10.2.0 client on AIX > 5.3 TL 12 SP 2 works fine. > > Building Oracle::DBD version 1.23 against Oracle 10.2.0 client on AIX > 5.3 TL 12 SP 2 is broken. > > Aside from the "normal" build failures which are addressed in the > documentation, a new issue has been presented starting with version > 1.27 > and 1.28. I have run perl Makefile.PL -s OCIPing and it did not > produce > any interesting results. > > root@khqaixappsrv06dev>/orasoft/product/10.2.0/bin/sqlplus -version > > SQL*Plus: Release 10.2.0.1.0 - Production > root@khqaixappsrv06dev>make test > PERL_DL_NONLAZY=1 /usr/opt/perl5/bin/perl > "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', > 'blib/arch')" t/*.t > t/01base.t .............. 1/6 # Test loading DBI, DBD::Oracle and > version > > # Failed test 'install_driver' > # at t/01base.t line 22. > Failed to load Oracle extension and/or shared libraries: > install_driver(Oracle) failed: Can't load > '/.cpan/build/DBD-Oracle-1.28- > o7hzsk/blib/arch/auto/DBD/Oracle/Oracle.so' for > module DBD::Oracle: rtld: 0712-001 Symbol OCIPing was referenced > from module > /.cpan/build/DBD-Oracle-1.28- > o7hzsk/blib/arch/auto/DBD/Oracle/Oracle.so(), > but a runtime definition > of the symbol was not found. at > /usr/opt/perl5/lib/5.8.8/aix-thread-multi/DynaLoader.pm line 230. > at (eval 8) line 3 > Compilation failed in require at (eval 8) line 3. > Perhaps a required shared library or dll isn't installed where > expected > at t/01base.t line 19 > The remaining tests will probably also fail with the same error. > > *** Please read the README and README.help.txt files for help. *** > > I have backed out this version and have gone back to 1.23 on my > systems > as a result. > > Please advise.
I've quickly looked, and the possible commit that introduced the problem is https://github.com/yanick/DBD-Oracle/commit/787ce8. If I'm right, v1.25 should be fine, and v1.26 should break.
From: blentz [...] cswg.com
Sorry, no. Building 1.25 also fails the exact same way, see the below output of "make test" against 1.25. Show quoted text
>make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/01base.t .............. 1/6 # Test loading DBI, DBD::Oracle and version # Failed test 'install_driver' # at t/01base.t line 22. Failed to load Oracle extension and/or shared libraries: install_driver(Oracle) failed: Can't load '/.cpan/build/DBD-Oracle-1.25-ugSVYQ/blib/arch/auto/DBD/Oracle/Oracle.so' for module DBD::Oracle: rtld: 0712-001 Symbol OCIPing was referenced from module /.cpan/build/DBD-Oracle-1.25-ugSVYQ/blib/arch/auto/DBD/Oracle/Oracle.so(), but a runtime definition of the symbol was not found. at /usr/opt/perl5/lib/5.8.8/aix-thread-multi/DynaLoader.pm line 230. at (eval 8) line 3 Compilation failed in require at (eval 8) line 3. Perhaps a required shared library or dll isn't installed where expected at t/01base.t line 19 The remaining tests will probably also fail with the same error.
From: h.m.brand [...] xs4all.nl
On Fri Jun 24 13:15:49 2011, blentz wrote: Show quoted text
> Sorry, no. Building 1.25 also fails the exact same way, see the below > output of "make test" against 1.25.
AIX 5.3.0.0/ML12 IBM,9115-505 PowerPC_POWER5/1898(2) 3920 Mb Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production DBD-Oracle-1.44-j5lQTw 106 > perl Makefile.PL Using DBI 1.620 (for perl 5.014002 on aix-64all) installed in /pro/lib/ perl5/site_perl/5.14.2/aix-64all/auto/DBI/ Configuring DBD::Oracle for perl 5.014002 on aix (aix-64all) : Installing on a aix, Ver#5.3 Using Oracle in /pro/oracle/v102 DEFINE _SQLPLUS_RELEASE = "1002000100" (CHAR) Oracle version 10.2.0.1 (10.2) : DBD-Oracle-1.44-j5lQTw 107 > make : : -- no errors whatsoever : bev i3:/u/usr/merijn/.cpan/build/DBD-Oracle-1.44-j5lQTw 108 > make test PERL_DL_NONLAZY=1 /pro/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/000-report-versions.t ... 1/? # Testing with Perl 5.014002, /pro/bin/ perl # Carp version is 1.25 # Config version is undefined # DBI version is 1.620 # Data::Dumper version is 2.131 # Devel::Peek version is 1.07 # DynaLoader version is 1.13 # Encode version is 2.44 # Exporter version is 5.66 # ExtUtils::MakeMaker version is 6.62 # Math::BigInt version is 1.997 Bailout called. Further testing stopped: can't load Oraperl # Failed test 'use Oraperl;' # at t/000-report-versions.t line 440. # Tried to use 'Oraperl'. # Error: install_driver(Oracle) failed: Can't load '/home/usr/ merijn/.cpan/build/DBD-Oracle-1.44-j5lQTw/blib/arch/auto/DBD/Oracle/ Oracle.so' for module DBD::Oracle: rtld: 0712-001 Symbol OCIPing was referenced # from module /home/usr/merijn/.cpan/build/DBD-Oracle-1.44-j5lQTw/ blib/arch/auto/DBD/Oracle/Oracle.so(), but a runtime definition # of the symbol was not found. # rtld: 0712-002 fatal error: exiting. at /pro/lib/perl5/5.14.2/ aix-64all/DynaLoader.pm line 190. # at (eval 30) line 3. # Compilation failed in require at (eval 30) line 3. # Perhaps a required shared library or dll isn't installed where expected # at /home/usr/merijn/.cpan/build/DBD-Oracle-1.44-j5lQTw/blib/lib/ Oraperl.pm line 55. # Compilation failed in require at (eval 29) line 2. # BEGIN failed--compilation aborted at (eval 29) line 2. # Tests were run but no plan was declared and done_testing() was not seen. Now with 1.45_00 DBD-Oracle-1.45_00 115 > make test PERL_DL_NONLAZY=1 /pro/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t t/000-report-versions.t ... 1/? # Testing with Perl 5.014002, /pro/bin/ perl # Carp version is 1.25 # Config version is undefined # DBI version is 1.620 # Data::Dumper version is 2.131 # Devel::Peek version is 1.07 # DynaLoader version is 1.13 # Encode version is 2.44 # Exporter version is 5.66 # ExtUtils::MakeMaker version is 6.62 # Math::BigInt version is 1.997 Bailout called. Further testing stopped: can't load Oraperl # Failed test 'use Oraperl;' # at t/000-report-versions.t line 440. # Tried to use 'Oraperl'. # Error: install_driver(Oracle) failed: Can't load '/home/usr/ merijn/.cpan/build/DBD-Oracle-1.45_00/blib/arch/auto/DBD/Oracle/ Oracle.so' for module DBD::Oracle: rtld: 0712-001 Symbol OCIPing was referenced # from module /home/usr/merijn/.cpan/build/DBD-Oracle-1.45_00/ blib/arch/auto/DBD/Oracle/Oracle.so(), but a runtime definition # of the symbol was not found. # rtld: 0712-002 fatal error: exiting. at /pro/lib/perl5/5.14.2/ aix-64all/DynaLoader.pm line 190. # at (eval 30) line 3. # Compilation failed in require at (eval 30) line 3. # Perhaps a required shared library or dll isn't installed where expected # at /home/usr/merijn/.cpan/build/DBD-Oracle-1.45_00/blib/lib/ Oraperl.pm line 55. # Compilation failed in require at (eval 29) line 2. # BEGIN failed--compilation aborted at (eval 29) line 2. # Tests were run but no plan was declared and done_testing() was not seen. FAILED--Further testing stopped: can't load Oraperl
Weird, http://docs.oracle.com/cd/B19306_01/appdev.102/b14250/whatsnew.htm says OCIPing was added. Anyway, the test in the code is rubbish since it is: #if !defined(ORA_OCI_102) and that is only defined for OCI 10.2. I have OCI 11.2 and have OCIPing but it is not being used because of that test. Martin -- Martin J. Evans Wetherby, UK
On Sun Jun 24 10:21:48 2012, MJEVANS wrote: Show quoted text
> Weird, > http://docs.oracle.com/cd/B19306_01/appdev.102/b14250/whatsnew.htm says > OCIPing was added. > > Anyway, the test in the code is rubbish since it is: > > #if !defined(ORA_OCI_102) > > and that is only defined for OCI 10.2. I have OCI 11.2 and have OCIPing > but it is not being used because of that test. > > Martin
This patch fixes it. For some reason AIX 10.2 does not have OCIPing despite the docs suggesting it does. Ignore comment above, if OCI > 10.2 ORA_OCI_102 is defined. Applied to subversion trunk and will be in next version. Appologies for taking so long to sort this out - I do not have AIX. Index: Oracle.xs =================================================================== --- Oracle.xs (revision 15334) +++ Oracle.xs (working copy) @@ -393,7 +393,7 @@ /*If the listener goes down it is another case as the Listener is needed to establish the connection not ma intain it*/ /*so we should stay connected but we cannot get nay new connections*/ { -#if !defined(ORA_OCI_102) +#if !defined(ORA_OCI_102) || (defined(_AIX) && !defined(ORA_OCI_112)) OCIServerVersion_log_stat(imp_dbh, imp_dbh->svchp,imp_dbh->errhp,buf,2,OCI_HTYPE_SVCCTX,status); #else vernum = ora_db_version(dbh,imp_dbh); Martin -- Martin J. Evans Wetherby, UK