When developing for PHP, I'm using a colpletely different httpd.conf to
start my server, and in this paeticular httpd.conf file, there's no mention
about modperl, perl or whatever required libapreq. The only modules I'm
loading are:
mime_module
log_config_module
status_module
dir_module
php5_module
And the same error still happens again and again.
Everytime I'm reinstalling my development OS, I'm using a brand new version
of 2.0.xx version of Apache (currently using 2.0.59) and I have to confess
that this nasty problem you are talking about was not appearing in my
previous Apache installations (2.0.55 if I remember well), or at least not
that often.
As explained below, that's a real pity, because under Win32, a thread/child
dying meamns the whole dying, and everything is forked again from the
initial parent process.
If I had to use Win32 on a production server, I would either investigate
more about this problem (writing to Apache Win32 porters or trying to study
the souce code, (not easy when you are not used to) either...would avoid
using it at all prices.
For now, you might perhaps give a look at previous Apache 2.0 versions and
as well signal this bug to Apache Win32 porters. (are you subscribed to any
Apache mailing list?)
Lionel.
----- Original Message -----
From: "Foo JH" <[EMAIL PROTECTED]>
To: "Lionel MARTIN" <[EMAIL PROTECTED]>
Cc: "Perrin Harkins" <[EMAIL PROTECTED]>; <modperl@perl.apache.org>
Sent: Saturday, May 26, 2007 3:44 AM
Subject: Re: Is it advisable NOT to limit MaxRequestsPerChild in Win32
modperl?
Thanks Lionel,
You meant when you dev. php, your apache did not load modperl at all, or
it's just not used? Will there be a performance enhancement (as in no
unexpected server restart) if you unload modperl totally?
Yeah, that silly error page makes people unsure about Apache on Windows. A
real bummer.
Lionel MARTIN wrote:
Hi,
Actually I didn't see your original question, about the following error:
[Mon Mar 05 21:19:47 2007] [notice] Parent: child process exited with
status 3221225477 -- Restarting.
Actually, I am not even sure that this is due to MP2.
Indeed, on my development computer (running under Win XP, Apache/2.0.59),
I am developing both PHP and Perl applications.
When developing for PHP, my Apache Server doesn't know about Mod Perl.
And yet, I'm keeping having the error you have, time to time, when
loading my PHP pages.
Actually, the messages below are taken from my logs (Apache/2.0.59 and
PHP 5.2.1)
[Fri May 25 10:01:24 2007] [notice] Parent: child process exited with
status 3221225477 -- Restarting.
[Fri May 25 10:01:24 2007] [notice] Apache/2.0.59 (Win32) PHP/5.2.1
configured -- resuming normal operations
[Fri May 25 10:01:24 2007] [notice] Server built: Jul 27 2006 15:55:03
[Fri May 25 10:01:24 2007] [notice] Parent: Created child process 3828
[Fri May 25 10:01:24 2007] [notice] Child 3828: Child process is running
[Fri May 25 10:01:24 2007] [notice] Child 3828: Acquired the start mutex.
[Fri May 25 10:01:24 2007] [notice] Child 3828: Starting 64 worker
threads.
But that's quite transparent to the client, as it seems that after the
restart, the page is served anyway. (but I get an ugly Windows error
message box)
So, I think the problems we are encountering are more due to Apache than
to ModPerl.
Lionel.
----- Original Message ----- From: "Foo JH" <[EMAIL PROTECTED]>
To: "Lionel MARTIN" <[EMAIL PROTECTED]>
Cc: "Perrin Harkins" <[EMAIL PROTECTED]>; <modperl@perl.apache.org>
Sent: Friday, May 25, 2007 10:29 AM
Subject: Re: Is it advisable NOT to limit MaxRequestsPerChild in Win32
modperl?
Hello Perrin and Lionel,
Lionel MARTIN wrote:
Unless I'm mistaken, and even if there is only one (child) Apache
process and several thread under Windows (winnt MPM), the only
directive that can be used is MaxRequestsPerChild and not
MaxRequestsPerThread.
It is not possible to restart individual threads (and associated Perl
Interpreteers), but only restart the child (which means restarting all
the threads at once). So, basically, the value indicated by
MaxRequestsPerChild is shared among all threads. (and its defaults
value is 0, which means that your child is never restarted because of
having handled too many requests).
Makes sense. I've tried inserting:
MaxRequestsPerThread 2
to httpd.conf, but it complains that 'perhaps misspelled or defined by a
module not included in the configuration'. Which is quite true: I don't
see any <IfModule> tags for WinNT. Any suggestions?
That's a bit of pity, because that's like an "all or nothing"
behaviour, you can't kill individual threads because they are growing
too much.
I know. It's the curse of being a Windows developer. We're all screwed.