perl-modperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Assen Tchorbadjiev <...@tchorbadjiev.com>
Subject Re: possible memory leaks, FreeBSD,mod_perl/1.29
Date Sat, 30 Sep 2006 10:19:47 GMT

Thanks both to Jonathan and Perrin,

> Jonathan

> That's probably just normal apache growth-- possibly nothing to do  
w/o mod_perl loaded the httpd process does not grow a bit even for 3000+ 
requests

> i'd suggest using:... Devel::GC::Helper ...
Devel::LeakTrace shows a leak right after the return from my handler routine.
If I remove the `$r = shift`  [and further $r usage], I does not show anything 
in the log. I guess it goes deeper inside the Apache::* stuff.

The procedure I am following is: 
1. use Devel::LeakTrace # inside the My::Dummy module
2. make 2000 requests to the url
3. killall -HUP httpd (httpd started in single mode)
4. see the httpd error log

> Perrin
> That's all you have loaded?
yes, only this module. No DBI, nothing.

> This code does have a bug, which is the 200 at the end.  ...
You're right, I was trying to get rid of any module use from within my module, 
even the Constants package.

> I don't use FreeBSD, but I would second Jonathan's advice about ...

(top output: SIZE/RES)
6276K  4652K # at startup
6312K  4676K # after first request
7624K  5992K # after 1000 requests
8984K  7356K # after 2000 requests

I've removed event the `$r = shift; $r->* stuff`. 
The package now looks like:
==== 
package My::Dummy;
use strict;
use warnings;

sub handler {
	print <<EF;
Content-type: text/html

boo?!
EF
	return 0;
}
1;
====
.. and the httpd.conf:
====
PerlModule My::Dummy
<Location /mem>
    SetHandler perl-script
    PerlHandler My::Dummy
    PerlSendHeader On
</Location>
====

Assen

-- 
---------------------------------------------------------------
Assen Tchorbadjiev
box@tchorbadjiev.com
8D6D 1FCF 96DB F37E E421 1BD2 D04E A856 20A4 AA20 <pgp.mit.edu>
---------------------------------------------------------------

Mime
View raw message