httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrew Punch <andrew.pu...@247realmedia.com>
Subject Re: [PATCH 41743] Graceful restart with prefork mpm issue
Date Thu, 03 Feb 2011 00:33:47 GMT
Hi,

I have double checked and the trunk does not fix this problem for
*prefork*. r645434 does not fix this problem. Joe stated "This does look
insufficient to fix the bug for prefork"

It does raise a good point though. It would make sense to fix this in
the trunk AND 2.2.x, rather than just 2.2.x

There are two ways this should be done:
1. [trunk and 2.2.x branch] Setting the mpm_state to AP_MPMQ_STOPPING
2. [2.2.x branch only] Replace ap_graceful_stop_signalled() with
ap_mpm_query() (2.2.x branch)
  a) Replace ap_graceful_stop_signalled() in http_core.c,
http_protocol.c
  b) Remove ap_graceful_stop_signalled() from all mpms
(prefork,event,nt,os2...) - if this function is not being maintained it
should be removed

An alternative to 2b is to maintain ap_graceful_stop_signalled()
properly.

Once you let me know your thoughts I will start making a patch.

-Andrew



On Wed, 2011-02-02 at 07:43 +0000, Ruediger Pluem wrote:

> 
> On 02/02/2011 12:57 AM, Andrew Punch wrote:
> > Hi,
> > 
> > I have contributed a patch to the long-standing bug 41743. A summary of
> > the issue is that if a keep-alive connection is active then the child
> > process never exits in certain cases (see bug for full details).
> > 
> > The expected behaviour, the behaviour of worker and the behaviour of 1.3
> > is that a "Connection: close" is issued then the connection is closed.
> > 
> > I have created a patch which simply returns die_now from the function
> > ap_graceful_stop_signalled()
> > 
> > Joe Orton commented:
> >> The fix for this on the trunk was r645434, which replaced use of
> >> ap_graceful_stop_signalled() with ap_mpm_query().
> > 
> >> This does look insufficient to fix the bug for prefork, since the
> > prefork
> >> signal handler does not change mpm_state (prefork.c:sig_term).
> > 
> > So my question is which of these alternatives do you prefer:
> > 1. Move ahead with my current patch
> > 2. I modify prefork.c so the signal handler changes mpm_state
> 
> Without looking into further details I guess we should follow the trunk
> fix (r645434) mentioned by Joe in the Bugzilla comment and try to backport it.
> Can you please try if this patch (http://svn.apache.org/viewvc?view=revision&revision=645434)
> fixes your issue as well?
> 
> Regards
> 
> RĂ¼diger
> 



Mime
View raw message