Hi. I have a leak somewhere and I'm trying to find it
using Apache2::Status. Individual usage of memory in
the packages and functions doesn't grow, and I'm unable
to use the "memory usage" of Apache2::Status, so I can
see further.
Any hint about solving this issue with Apache2::Status
or finding the leak with another tool will be very
appreciated. I also tried unsuccessfully to use
Apache::VMonitor. I asked about it a couple of weeks
ago in this list.
I'm able to reach Memory Usage for packages, and I
inspected each one (I made a quick perl LWP script). I
didn't find any increases of used memory in the packages,
though the httpd process grows and grows at each request.
I get this with Gtop:
Process 19994
start 100reqs 100reqsmore
shared: 11656 11656 11656
size: 33892 54140 73804
rss: 27756 40456 52316
So I'm trying to use Apache2::Status "Memory Usage", but It
won't work with my MP2, look:
I see this in the logs when I try to load the page:
Can't call method "script_name" on an undefined value at
/usr/local/web21/perl/lib/site_perl/5.8.7/i686-linux/B/TerseSize.pm line 629
I found it comes from Apache2::Status 121, I added
the $qs parameter there:
if (defined &$sub) {
$r->print(@{ &{$sub}($r,$qs) });
^^^
As expected, it didn't work, now I see:
Can't locate object method "script_name" via package
"status_memory_usage" (perhaps you forgot to load
"status_memory_usage"?) at
/usr/local/web21/perl/lib/site_perl/5.8.7/i686-linux/B/TerseSize.pm line 629
So it looks like $qs isn't an object, I tried to use
it as a string in B/TerseSize.pm, line 620:
my $script = $q;#->script_name;
now it just segfaults
child pid 21576 exit signal Segmentation fault (11).
My environment is a debian stable server with perl, apache,
and modperl built from source:
httpd-2.0.55
perl-5.8.7
mod_perl-2.0.2
libapreq2-2.06-dev
kernel-2.6.8
thank you