On Thu, Jul 17, 2003 at 09:09:50AM +1000, Ron Savage wrote:
> >On Wed, Jul 16, 2003 at 09:20:42AM -0400, Andrews, Mark wrote:
>
> Hi Folks
>
> >>I wrote a program that performs numerous independent database
> >>operations, essentially the same operation on a number of different
> >>tables. For performance reasons I decided to have the program fork
> >>and
> >>each child operate on a different table. It worked like a champ.
> >>The
> >>environment was Windows 2000, ActiveState Perl 5.6.1, and DBI 1.23.
> >>I
> >>upgraded to DBI 1.37 and now I get a memory error "The instruction
> >>at
> >><Hex Address> referenced memory at <Hex Address>. The memory could
> >>not
> >>be read." I've tried this on other Windows machines in our office
> >>and
> >>get the same error.
> >>
> >>I started removing pieces until I was left with this:
> >>
> >>use DBI;
> >>my $pid = fork;
> >>if ($pid) {
> >>print 'Parent', "\n";
> >>}
> >>else {
> >>print 'Child', "\n";
> >>}
> >>
> >>For this one program I have returned to using ODBC but that adds
> >>unwanted complexity to our system having to understand and maintain
> >>two
> >>different DB link methods. I'd like to be able to use just DBI but
> >>this
> >>problem prevents it.
> >
> >Enabling a trace (via DBI_TRACE env var) may help see what's
> >happening. It would also help if you tried as many versions as
> >possible between 1.23 and 1.37 to narrow down when the problem
> >started.
> >
> >Tim.
> >
> >p.s. If anyone has the same environment but different versions of
> >DBI, or has a debugger that can report where the error is happening,
> >please try out the test program for me. Thanks.
>
> Win2K
> Perl 5.8.0
> DBI 1.37
> No problem
So it seems like a perl 5.6.1 issue. In which case I'll dig no further.
Anyone on windows should be using 5.8.0 unless there's a very good reason not to.
> Oh, one other thing - what's a 'debugger' :-))?
> I've never needed nor used the Perl debugger - No joke.
Actually I meant a C level debugger.
Tim.