> Hi --
> 
> I am getting the following message recurring in my log:
> 
> Parent: child process exited with status 255 -- Restarting.
> 
> followed by the process restart sequence.
> 
> I have tracked it down to a call to $r->content which doesn't seem to
> return properly.
> 
> It would appear that
> 
> 1. The POST request has Encoding-type: chunked (message total length is
> ~5kb);
> 
> 2. The client sends the HTTP headers, then pauses 3-4 seconds while it
> generates the body of the message (confirmed with WireShark);
> 
> 3. So when I call $r-content, when it succeeds I see a 3-4 second pause
> before it completes;
> 
> 4. If another request arrives during the call to $r->content, the process
> aborts and restarts - I assume it is interfering with the read() call in
> $r->content.
> 
> Since the pause is so long, it is very likely to be interrupted even though
> I only have 5 clients currently :(
> 
> Given the the chunked implemenation in mod_perl 2.0 is apparently
> incomplete, have I struck one area where this affects the result?
> 
> Can anyone make suggestions as to how I can work around this problem?  I
> wondered about maybe moving my handler to the log phase (currently it's a
> Response handler), by which time I assume the entire message must be
> available, but it seems like a major kludge and presumably would lead to
> other issues anyway.

        I find it curious that you observe this behaviour within just under 
5 seconds.  The KeepAliveTimeout setting, which defaults to 5 
seconds, might be of interest to you -- I would certainly try setting 
it to 20 seconds temporarily in the hopes of at least ruling it out 
as a possible cause:

                http://httpd.apache.org/docs/2.2/mod/core.html#keepalivetimeout

> Or is there some multi-threading thing I should have done - currently I
> have not really done anything specific...
> 
> I am using Apache2.2 on Win7 (no flames please :)), with ActiveState Perl
> "(v5.12.2) built for MSWin32-x86-multi-thread".

        I have noticed that socket I/O under Windows behaves strangely at 
times.  I eventually moved off to running Apache HTTPd 2.2 with 
ModPerl 2 on NetBSD under VirtualBox, which basically seemed to cure 
all the unpredictable problems I encountered (not just with ModPerl 2 
but with other technologies, such as ImageMagick's PerlMagick 
libraries, even without ModPerl 2 in the mix, issues with compiling 
code downloaded from CPAN, etc.) as well as yielded better 
performance with faster response times.

        I found ActiveState Perl to be a great implementation, but one of 
the problems I had was that it sometimes didn't have a pre-compiled 
module that I needed, and moving to Unix was a lot easier.

        I mention those points in the hopes that it will be helpful to you 
(switching to Unix was helpful to a few of my friends who love PHP, 
and one who does a lot of xBase {Clipper} programming), and I hope 
you don't view this as a flame.

Randolf Richardson - rand...@inter-corporate.com
Inter-Corporate Computer & Network Services, Inc.
Beautiful British Columbia, Canada
http://www.inter-corporate.com/


Reply via email to