Thread (28 messages) 28 messages, 6 authors, 2012-01-23

Re: RFC Hanging clean-up of a namespace

From: David Miller <davem@davemloft.net>
Date: 2012-01-19 20:29:38

From: David Lamparter <redacted>
Date: Thu, 19 Jan 2012 20:53:49 +0100
On Thu, Jan 19, 2012 at 02:31:05PM -0500, David Miller wrote:
quoted
quoted
quoted
quoted
quoted
Keeping the timewait sockets around is necessary to absorb any lingering
packets in the network meant for those sockets.
[...]
quoted
quoted
quoted
The assumption is that the address is moving, which might not be true.
I don't understand what you mean, what address may not be moving?

We're talking about dropping a netns. All of its addresses disappear,
all of its soft devices disappear. Its hard devices fall back into the
init namespace, is that what you're referring to?
And then you immediately start up a new netns with the same address
and then resets go back to lingering TCP packets the time-waits would
have consumed.

The reason this is different from a host reboot is that a host reboot
takes some amount of time, which even if around 30 seconds is superior
in behavior to what can happen with netns which can be created almost
instantly.
Arjan van de Ven booted Linux in 5 seconds in 2008,
cf. http://lwn.net/Articles/299483/

On the TCP timewait scale of time, this is pretty much "immediate".

[..]
quoted
Then if a new netns is created that tries to reuse the address used by
the mini-netns which hasn't cleared yet, you give -EAGAIN until all
the timewaits expire.
The effect of this is that you end up being unable to reboot lxc based
virtualised hosts without waiting 2 minutes for the TCP timers to
expire. That sounds completely unacceptable to me.
All you are saying to me is that we are on a trajectory to major problems
if it becomes pervasive that time-wait gets cancelled out and addresses
then get reused so quickly.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help