I'm posting to this list mainly because I'm not 100% sure that I have a
bug (who ever is, right?). I'm doing an export of some relational data
into XML, which amounts to many many queries in a database with the
information basically being written straight out. Initially it was done
using our own custom class that extends PEAR DB - but I've since brought
it down to straight mysql function calls with the same results.
The process itself seems cpu bound if anything, there is still memory
available (initially it did hit the max execution and memory limits -
when they were severely low, it doesn't at 5min and 128mb*) and the disk
access is reasonable. I get a segfault in the Apache error log, and
have a backtrace of its results running it in gdb - but don't really
know what exactly to file alongside my bug (how to describe it in a way
someone will try to fix it).
Has anyone had similar issues and done any other kind of testing or
thought of other ways to hone in on the actual problem before submitting
a bug? I've got a few general theories but nothing particularly
concrete or testable. This doesn't happen until it's done a fair bit of
processing - but I can't find anything indicating why it decides to
fail. My best "magic bullet" theory right now is along the lines of
some general idea that perhaps PHP gets confused when you've loaded up a
class a huge amount of times (even though I'm destroying their
instances [it's in a recursive function call**]) - but that's pretty
much just my arbitrary "I'm angry and frustrated maybe this is it" with
no real backing.
I have, of course, upgraded to CVS PHP and the segfault still exhibits
itself. Any suggestions would be greatly appreciated.
* the calls I was doing initially pulled the entire result set, which
for an export was burning a lot of memory. I haven't dropped the memory
limit yet because I don't see how it will help me define the problem,
but I'm sure it's down to something a lot more reasonable :)
** no, it's not infinitely looping. It's dumping patient data, e.g. it
dumps a patient, a bunch of related records, and continues.
- Martin Norland, Database / Web Developer, International Outreach x3257
The opinion(s) contained within this email do not necessarily represent
those of St. Jude Children's Research Hospital.