On Sun, 3 Sep 2000, Warren D. Johnson wrote:
> Here is my problem: StatINC seems to work fine several times after I
> restart the server but then at some point begins to act funky. I'll reload
> a page and either/or a source file will get reloaded every time (despite
> it's time not changing) or i'll get different versions of the page popping
> up (versions which existed in previous revision of my source file). Its
> from looking at my error_log that different httpd child processes are
> catching the different browser requests and reloading the source files.
> It is extremely frustrating to say the least as I can't understand what the
> problem really is. Logic would dictate that if a httpd child process
> received a request to handle a mod-perl-script that StatINC would tell the
> server to hold up for a second while it recompiles these modules and then
> let it go on it's way. It's almost as if each child process maintains it's
> own seperate cached version of the modperl-covered scripts. Is this the
> case?
Yes, this is the case. Each child has its own copy of the compiled
module. When you initially start the server, if your modules are
pre-loaded, initially this memory will be copy-on-write shared across each
child (i.e. only one area of memory used and shared between the children),
but when you reload them using something like StatINC, that sharing
disappears.
You could try PerlFreshRestart and issue a graceful restart if this isn't
the type of reload you want.
--
<Matt/>
Fastnet Software Ltd. High Performance Web Specialists
Providing mod_perl, XML, Sybase and Oracle solutions
Email for training and consultancy availability.
http://sergeant.org | AxKit: http://axkit.org