On Sat, Jan 31, 2004 at 08:30:51PM -0500, Gerard Tromp wrote:
> Some additional data.
> 
> When the tests are trimmed to 13 (see previous message below), the failure
> affects only 2 (9,11) or 3 (9,11,12) tests.
> The tests are:
> 9     ok(0, $tmp = $sth->fetchall_arrayref, 1); # line 156
> 11    ok(0, $tmp->[0],[1] eq ....                     # line 158
> 12    ok(0, $tmp->[1],[1] eq ....                     # line 160
> 
> I have tried both statically linked and dynamically linked perl binaries (no
> threading).
> 
> It appears to make no difference whether "$dbh->{LongReadLen} = 20;" at line
> 144, or "$dbh->{LongReadLen} = 80;" (with original oci8.c).
> 
> The error message "ORA-01801: date format too long for internal buffer" is
> triggered intermittently when the tests are trimmed to 13. I am including
> the output below for a run of 100 sets of 13 tests to show the intermittent
> failure.
> Summary:
> In a run of 100 tests, the failures are sporadic.
> ================================================
> Sometimes 2 (9,11) tests fail, sometimes 3 (9,11,12)
> Failed:       31, 45, 58, 69, 70, 83
> Period:       31, 14, 13, 11,  1, 13
> Failures:      2,  3,  2,  2,  3,  2

Great work! Since you're obviously keen to get to the bottom of this I'd
suggest building and using a perl compiled with -DDEBUGGING and -DPURIFY.
Check the results are the same (they ought to be, allbeit slower).

Then try using a memory debugger. Ideally a commercial one like Purify
if you can get it, else a free one like electricfence, dbmalloc, dmalloc etc.
There's a handy list of such tools maintained here:
http://www.cs.colorado.edu/homes/zorn/public_html/MallocDebug.html

Don't be surprised if there's lots of 'noise' from Oracle libs.
Last time I ran Purify on them it was scary, very scary.

Good luck!

The alternative is to write off Oracle 8.1.7 as a buggy release
(in relation to LOB handling, c.f. Oracle bug #886191) especially as
exactly the same DBD::Oracle code works without this problem on all
later Oracle releases.

Tim.

Reply via email to