perl-modperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stephen Clouse" <stephenclo...@gmail.com>
Subject How to debug bizarre memory corruption in mod_perl
Date Tue, 08 Jul 2008 17:23:35 GMT
I will preface this message with this: this is not a mod_perl bug or
problem, but it involves a mod_perl application, so this is probably a good
place to get advice from experienced mod_perl users/developers.

I have an application that ran on mod_perl 1.3 and perl 5.8 for a long time,
that I recently ported over to a Fedora 9 box, thus moving it to mod_perl
2.0 and perl 5.10.

Under this new environment, I am getting some of the most bizarre and
insidious perl core errors I've ever seen in my 15 years of using perl.
Here's a sampling:

Attempt to free unreferenced scalar: SV 0xbd266be4, Perl interpreter:
0xba01c410 at /usr/lib/perl5/vendor_perl/5.10.0/HTML/Mason/Component.pm line
147.
panic: attempt to copy value 20 to a freed scalar bd49dffc
Use of freed value in iteration
panic: free from wrong pool

Not to mention countless application errors involving dereferencing, where
things that are supposed to be arrays and hashrefs have magically turned
into strings and key values, and vice versa.

Now I realize this is not an issue with mod_perl itself.  Obviously
something is doing a massive fandango on core and corrupting the Perl
stack/arena over time.  Note that running Apache with MaxRequestsPerChild =
1 seems to mitigate the issue, so it's a problem that occurs at runtime.

My problem is that I don't even know where or how to start tracing or
debugging such an issue to determine precisely what is scribbling on perl's
memory.  If this was a standalone app, it would be simple enough to run it
through gdb and trace everything out, but in a mod_perl environment....

Any advice on how to proceed is greatly appreciated.

-- 
Stephen Clouse <stephenclouse@gmail.com>

Mime
View raw message