Hi Olivier,
On Thu, Mar 23, 2017 at 02:17:38PM +0100, Olivier Doucet wrote:
> Hello there,
>
> 2017-03-23 7:42 GMT+01:00 Willy Tarreau <[email protected]>:
>
> > Additionally, since it helps improving the reliability of the service
> >
> during reloads without adding particular features and the patch is
> > reasonably small and isolated, I was thinking we could backport it to
> > 1.7 and even possibly 1.6. What do you and others think ?
> >
> > Thanks!
> > Willy
> >
> >
>
> That would be really great. I have processes that stays alive several days
> after a reload, and it's always a pain to kill them by hand / with a custom
> bash loop.
OK so I count this as a +1 vote :-)
> With the code from Cyril, would it be possible to define very long timeout
> (several hours) without side-effect ?
Sure, it's a task as any other task so it would not cause any particular
problem once you've taken this into account :
- stats are not available anymore (you only see those from the new
process)
- health checks are not performed anymore (avoids hammering servers from
many older processes not supposed to get any new request anyway)
These ones are normally totally fine for an old process (and you're living
with this now), these just limit the reasonable amount of time one would be
willing to run in this situation. A few hours definitely sounds totally
appropriate to me for most use cases with pure TCP connections (ldap, sql).
> If so, backport would be great.
> I was also thinking about dumping how many connections were force-killed in
> log, if it's easy.
I thought about it as well while responding but forgot to mention it. That's
also why I'd prefer to leave one extra second for the connections to cleanly
close and log. Yes it's important.
Cheers,
willy