Dear Willy.
Am 09-08-2016 19:37, schrieb Willy Tarreau:
On Tue, Aug 09, 2016 at 05:06:15PM +0200, Aleksandar Lazic wrote:
[snnipp]
Yes that's true. that's a different concept.
Note that it's not a matter of process but of socket. In SO_REUSEPORT
mode
we have multiple sockets for a same ip:port. So packets are delivered
into
individual sockets. When the last user of a socket closes it, the
socket is
closed, and a reset is sent for all packets in its queue.
The only way to avoid this would be to have a master/worker model where
the
master is never restarted, deals with sockets and passes them to the
other
processes over unix sockets. A first step for this was developped by
Simon
a few years ago but he probably faced all the architecture limitations
at
once, resulting in various stuff like segfaults on reloads and I don't
remember what!
The exact model needed in fact is not a master/worker but a socket
server
(which the master often is in such a model). But to a certain extent we
could very well imagine an external process used as a socket server and
being reconfigured upon every reload, delivering sockets and keeping
refcounts on them.
This is something that could be worth reconsidering for 1.8 if people
are
willing to work on this, but it's a huge effort due to a lot of history
accumulated in this dirty area to be honnest.
Willy
Thank you, as always a very detailed and clear answer.
With the answers from Lukas my question is answered ;-)
Very best regards
aleks