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

Reply via email to