Actually, it is.

    https://svn.apache.org/viewvc?view=revision&revision=1772334

> On Dec 15, 2016, at 2:47 PM, Yann Ylavic <[email protected]> wrote:
> 
> On Thu, Dec 15, 2016 at 8:06 PM, Eric Covener <[email protected]> wrote:
>> I have been looking at this area a little bit from the perspective of
>> killing the keepalive conns as early as possible during graceful
>> process exit.
>> 
>> This might have had a bad interaction with the event wakeup patch
>> here.
> 
> Hmm, the wakeup patch isn't in 2.4.24/x already no? (not proposed, by
> me at least, too much changes in events already...).
> 
>> Now we can sit in poll() for significant time after graceful
>> shutdown is signaled (immediately after the poll call that will be
>> EINTR'ed).  This will happen before the keepalive conns are moved to
>> lingering close.
>> 
>> I am not completely sure how 2.4.23 and 2.4.24 will differ here in
>> practice but that is also a concern.  I think something nearly as
>> simple as copying the 2nd block with
>> 
>>                process_keepalive_queue(0); /* kill'em all \m/ */
>> 
>> Into the block where poll returned EINTR may be close to what we need.
>> Another unexplored option might be to refer to short poll intervals
>> during shutdown, from the perspective of how these two features are
>> disturbing eachother.
> 
> If we want to kill keepalive connections early on restart/shutdown I'd rather 
> :
> 
> Index: server/mpm/event/event.c
> ===================================================================
> --- server/mpm/event/event.c    (revision 1774260)
> +++ server/mpm/event/event.c    (working copy)
> @@ -1865,6 +1865,7 @@ static void * APR_THREAD_FUNC listener_thread(apr_
>             if (terminate_mode == ST_UNGRACEFUL
>                 || apr_atomic_read32(&connection_count) == 0)
>                 break;
> +            process_keepalive_queue(0); /* kill'em all \m/ */
>         }
> 
>         if (conns_this_child <= 0)
> _
> 
> so that we don't trigger it on any possible poll() EINTR.
> 
> Does it work for you?

Reply via email to