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?