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.





Reply via email to