On Thu, 2007-07-19 at 09:42 +0200, Erwan Lemonnier wrote:
> Hi Tim!
> 
> > Ah, now it's getting interesting! :)
> 
> So I thought :)
> 
> > Are the two versions of DBD::Oracle built against the same Oracle
> > version/installation?
> 
> No.
> The one used by perl 5.6.2 was built against an oracle 9.2.1.0 (unsure
> of the exact version, but it was a 9.*). The one used by perl 5.8.5
> and perl 5.8.8 was built against an oracle 10.2.0.
> 
> > What differences are there in the configuration of the two perl versions?
> 
> a diff between perl -V for my perl 5.6.2 and perl 5.8.8 shows the
> following differences (the other options are in the 'perl -V' I
> included in my very first post):
> 
> * 5.6.2:
> osvers=2.6.9-42.0.2.elsmp
> config_args='-Dprefix=/opt/perl-5.6.2'
> useperlio=undef
> ccflags ='-fno-strict-aliasing -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
> cppflags='-fno-strict-aliasing'
> libs=-lnsl -lgdbm -ldb -ldl -lm -lc -lcrypt -lutil
> ccdlflags='-rdynamic'
> Compile-time options: USE_LARGE_FILES
> 
> * 5.8.8:
> osvers=2.6.9-55.elsmp
> config_args=''
> useperlio=define
> bincompat5005=undef
> ccflags ='-fno-strict-aliasing -pipe -Wdeclaration-after-statement
> -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
> cppflags='-fno-strict-aliasing -pipe -Wdeclaration-after-statement
> -I/usr/local/include'
> libs=-lnsl -ldb -ldl -lm -lcrypt -lutil -lc
> gnulibc_version='2.3.4'
> ccdlflags='-Wl,-E'
> Compile-time options: PERL_MALLOC_WRAP USE_LARGE_FILES USE_PERLIO
> 
> 
> > Take a look at the source for the Perl_sv_2nv() function in sv.c
> > in the two distributions.
> > Also check for differences in the perl config
> > items that impact that code.
> 
> Damn. I had a bad feeling I would end up there.
> Ok, I'll put on my deep dive googles and switch on the tolkien
> translator. If you don't hear from me within a week, call the asylum
> to fetch me ;)
> 
> > Try it with:
> >
> >   my $v1 =  "1.73696";
> >   showbin($v1);
> >   require DBD::Oracle;
> >   my $v2 =  "1.73696";
> >   showbin($v2);
> 
> I get:
> 
> [HEAD] ~/HEAD/test/t/> !1030$ /opt/perl-5.6.2/bin/perl
> 02_test_require_dbd_oracle.t
> 0011111111111011110010101001011010010001101001110101110011010001
> requiring
> 0011111111111011110010101001011010010001101001110101110011010001
> 
> [HEAD] ~/HEAD/test/t/> !1031$ /opt/perl-5.8.8/bin/perl
> 02_test_require_dbd_oracle.t
> 0011111111111011110010101001011010010001101001110101110011010001
> requiring
> 0011111111111011110010101001011010010001101001110101110011010001
> 
> No difference. What triggered the problem happened during the connect,
> but not during 'require DBD::Oracle'.
> 
> 
> > I know that on Solaris the act of loading the Oracle library (e.g.
> > libclntsh.so) could suck in other libraries which would cause
> > subtle side effects.
> >
> > The particular case I (vagely) recall related to alarm(). Loading the
> > Oracle library caused the threaded version of alarm() to be loaded and
> > take precedence. So alarm(0) after loading DBD::Oracle wouldn't cancel
> > the alarm($timeout) set before loading it. Fun. I don't recall now
> > if/how that got resolved.
> >
> > Anyway, I mention it because it seems like this is a similar issue.
> 
> Agggh. This example gives me goose flesh. I just hope I am not facing
> something like that...
> 
> Is there anyone around with access to an oracle database 10.* and
> running perl 5.8.* who could run the test code I provided earlier? The
> one that just connects? It would be interesting to know how strongly
> dependent it is to just my specific setup...

I know you asked for Oracle 10, but here is the result of 

  Perl            : 5.008006    (i686-linux)
  OS              : linux       (8.0)
  DBI             : 1.54
  DBD::Sponge     : 12.008696
  DBD::Proxy      : 0.2004
  DBD::Oracle     : 1.19

  Oracle 9.2.0.1.0

bin: 0011111111111011110010101001011010010001101001110101110011010001
connecting
bin: 0011111111111011110010101001011010010001101001110101110011010001

-- 
Scott T. Hildreth <[EMAIL PROTECTED]>

Reply via email to