From: ebiederm@xmission.com (Eric W. Biederman)
To: Chris J Arges <chris.j.arges@canonical.com>
Cc: shemminger@osdl.org, netdev@vger.kernel.org
Subject: Re: iproute2: potential upgrade regression with 58a3e827
Date: Fri, 08 Nov 2013 13:36:44 -0800 [thread overview]
Message-ID: <87k3gi4lub.fsf@xmission.com> (raw)
In-Reply-To: <527D2768.1030403@canonical.com> (Chris J. Arges's message of "Fri, 08 Nov 2013 12:03:20 -0600")
Chris J Arges <chris.j.arges@canonical.com> writes:
> Hi,
> The commit
> https://git.kernel.org/cgit/linux/kernel/git/shemminger/iproute2.git/commit/?id=58a3e8270fe72f8ed92687d3a3132c2a708582dd
> could be potentially introducing a regression on an upgrade.
>
> I've noticed that upgrading iproute while there are active namespaces
> could cause the following error:
> seting the network namespace failed: Invalid argument
>
> Here's a test case:
> Build and install iproute2 with 4395d48c78a77a99c5a8618403211032356fe552
>
> In one terminal run:
> ip netns add netns_old
> ip link add name if_old type veth peer name if_old_peer
> ip link set dev if_old_peer netns netns_old
> ip netns exec netns_old bash
>
> Build and install iproute2 with 58a3e8270fe72f8ed92687d3a3132c2a708582dd
>
> In the same terminal as you typed the original commands run:
> ip netns add netns_one
> ip link add name if_one type veth peer name if_one_peer
> ip link set dev if_one_peer netns netns_one
> ip netns exec netns_one bash
> ip netns exec netns_old bash
>
> You'll get:
> seting the network namespace failed: Invalid argument
>
> If you just run the above without transitioning to the code in 58a3e827,
> then it works.
ip netns exec is fundamentally designed to run code that knows nothing
about network namespaces without modification. If we can make network
namespace aware code work that is great but the entire point of ip netns
exec is to remove the need to convert every network aware program in
linux to be network namespace aware.
Shared subtree support that is added in 58a3e827 should make things a
little better, by letting changes that happen in the initial mount
namespace propogate into children running inside of ip netns exec.
It appears that somehow you wound up in a mount namespace where the
mount of netns_one did not propagate too. Which is weird. I expect
we are missing an error message somewhere.
So far nothing allows network namespaces added like:
ip netns exec ns1 ip netns add ns2
to propogate up to the initial mount namespace and that will definitely
cause problems, but not the problem you are seeing.
Shrug. I will be happy to review patches to make this better but I
don't care enough to investigate. If you aren't up to writing patches
to make ip netns work inside of ip netns exec I recommend you don't do
that then.
Eric
next prev parent reply other threads:[~2013-11-08 21:36 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-08 18:03 iproute2: potential upgrade regression with 58a3e827 Chris J Arges
2013-11-08 21:36 ` Eric W. Biederman [this message]
2013-11-08 22:30 ` Chris J Arges
2013-11-08 22:42 ` Eric W. Biederman
2013-11-09 17:00 ` Brian Haley
2013-11-11 21:26 ` Chris J Arges
2013-11-11 21:38 ` Dilip Daya
2013-11-11 22:40 ` Eric W. Biederman
2013-11-12 0:36 ` Dilip Daya
2013-12-13 18:46 ` [PATCH] " Chris J Arges
2013-12-13 18:55 ` Stephen Hemminger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87k3gi4lub.fsf@xmission.com \
--to=ebiederm@xmission.com \
--cc=chris.j.arges@canonical.com \
--cc=netdev@vger.kernel.org \
--cc=shemminger@osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.