[Pdx-pm] Strange Random coredumps
Martin Schneider
Martin.Schneider at tntsoftware.com
Thu Dec 19 15:32:57 CST 2002
Mark,
On the SQL 2000 side, are there any significant events in the Windows
event logs? If you suspect the Perl to SQL communications, SQL has a
tracing tool called Profiler, but trace file size may become an issue.
If you're running Perl on Windows, and switch to ODBC, then Data Sources
(ODBC) also has a trace feature (but same issue).
--
HTH,
Martin Schneider
- Standard disclaimers apply -
-----Original Message-----
From: Mark Hartley [mailto:mark at drapple.com]
Sent: Thursday, December 19, 2002 12:35 PM
To: pdx-pm-list at pm.org
Subject: [Pdx-pm] Strange Random coredumps
I am having a very frustrating problem with a few Perl apps
I've written randomly dumping core, and I'm hoping someone can
point me in a direction to find the cause.
A little background as to what I'm doing:
I have a whole bunch of applications that I've written which run
as a CGI under Apache (1.3.26) on a FreeBSD (4.6.2-RELEASE-p4) machine.
There are actually 3 of these machines, one of which is running SSL.
All 3 machines are using Perl 5.005_03.
The applications are talking to a MS SQL server 2000 database (not by
my choice). I am using DBI:Sybase drivers to talk to the db. I know
that I could use ODBC drivers as well, but right now I'm using the
Sybase ones.
OK, now to the problem:
These applications get a fair amount of traffic each day (something
along
the lines of 32,000 hits per day). One specific app takes about 25% of
that. Now, the app runs about 8000 times per day, and it will randomly
dump core anywhere from 0 up to 100 times per day, leaving no
information in
Apache's error log as to what happened. The 0 days are good, but the
other days
I end up taking heat from the client. I've tried adding debugging code
into the
scripts to try and find where it dies, and I've had a reasonable amount
of
success with this method, but the code is correct. The places where it
is dying
don't seem to to form any kind of a pattern. Sometimes it dies trying to
read
from the db, other times it will die while trying to generate some
output. But
I know the code is correct and works. I've gone over it a zillion
times, and it
runs perfectly over 7500 times per day. If I try to run it through the
perl
debugger by hand, everything seems to work just fine, but with the fact
that it
runs fine 98% of the time, that doesn't surprise me.
This is happening with several of the scripts. I was just using this
one as
an example. I've found I can significantly reduce the number of times
the
applications die if I simply put a:
print STDERR "foo\n";
in the script in a few different places. It makes no sense to me why
adding
a few of those will cause a script to be significanlty more stable if I
add
those. I realize I can just leave them in, but it feels like a bandaid,
and
it doesn't eliminate the problem, it just reduces it.
Now some of these Perl scripts are reasonably large (the one I mention
above
is 72kb with nearly 2000 lines), but the coredumps also happen on
scripts with
only a couple hundred lines of code.
Does anyone have any advice or anything they can help me figure out with
regards
to this.
Mark.
_______________________________________________
Pdx-pm-list mailing list
Pdx-pm-list at mail.pm.org
http://mail.pm.org/mailman/listinfo/pdx-pm-list
More information about the Pdx-pm-list
mailing list