From: Pavel Emelyanov <xemul@openvz.org>
To: Ingo Molnar <mingo@elte.hu>
Cc: linux-kernel@vger.kernel.org, Ulrich Drepper <drepper@redhat.com>
Subject: Re: [patch] PID namespace design bug, workaround
Date: Thu, 01 Nov 2007 18:02:12 +0300 [thread overview]
Message-ID: <4729EA74.8090602@openvz.org> (raw)
In-Reply-To: <20071101144307.GA29566@elte.hu>
Ingo Molnar wrote:
> while checking recent commits to the kernel core i took a look at the
> PID namespaces implementation, and it has a fatal flaw: it breaks
> futexes and various libraries (and other stuff) that use PIDs as the
> means of identifying tasks, by not providing any means of global
> identification that works across PID namespaces. (PIDs _are_ a very
You're not 100% correct here. The task_pid_nr() does return you a
unique pid, so you do have the way to identify the task.
Another thing - you should *not* allow tasks to communicate across
pid namespaces using any pids - this just breaks the pid namespaces
idea.
As far as the futexes are concerned - I do not allow threads live
in different pid namespaces (more correct fix would be not to allow
tasks share the mm_struct across pid namespaces, but this is a one
line fix), so the situation when you have two threads in different
namespaces is impossible.
Thanks,
Pavel
> convenient and global way of identifying contexts.)
>
> i asked Ulrich about this and it turns out he has warned about this
> early on:
>
> http://www.nabble.com/Re%3A-question%3A-pid-space-semantics.-p3409990.html
>
> but this problem is still present in the code, and it has been recently
> committed into mainline via:
>
> commit 30e49c263e36341b60b735cbef5ca37912549264
> Author: Pavel Emelyanov <xemul@openvz.org>
> Date: Thu Oct 18 23:40:10 2007 -0700
>
> pid namespaces: allow cloning of new namespace
>
> without these problems having been resolved. A full-scale revert is
> probably too intrusive, but at minimum we need to turn off user-space
> access to this feature via this simple patch. Until this issue is
> resolved properly the new PID namespace code needs to be turned off.
> Letting this into 2.6.24 would be a disaster.
>
> Signed-off-by: Ingo Molnar <mingo@elte.hu>
> ---
> kernel/fork.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> Index: v/kernel/fork.c
> ===================================================================
> --- v.orig/kernel/fork.c
> +++ v/kernel/fork.c
> @@ -1420,6 +1420,14 @@ long do_fork(unsigned long clone_flags,
> int trace = 0;
> long nr;
>
> + /*
> + * PID namespaces are broken at the moment: they do not allow
> + * certain PID based syscalls (such as futexes) to be used
> + * across namespaces. This is broken and must not be allowed,
> + * so we keep this feature turned off until it's properly fixed.
> + */
> + clone_flags &= ~CLONE_NEWPID;
> +
> if (unlikely(current->ptrace)) {
> trace = fork_traceflag (clone_flags);
> if (trace)
>
prev parent reply other threads:[~2007-11-01 15:02 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-01 14:43 [patch] PID namespace design bug, workaround Ingo Molnar
2007-11-01 14:51 ` Pavel Emelyanov
2007-11-01 14:56 ` Peter Zijlstra
2007-11-01 15:06 ` Pavel Emelyanov
2007-11-01 15:17 ` Ingo Molnar
2007-11-01 15:30 ` Pavel Emelyanov
2007-11-01 14:56 ` Ulrich Drepper
2007-11-01 15:05 ` Pavel Emelyanov
2007-11-02 0:21 ` Ulrich Drepper
2007-11-02 7:55 ` Pavel Emelyanov
2007-11-02 8:04 ` Andrew Morton
2007-11-02 8:14 ` Pavel Emelyanov
2007-11-02 14:05 ` Ulrich Drepper
2007-11-02 14:21 ` Pavel Emelyanov
2007-11-02 15:34 ` Ulrich Drepper
2007-11-02 15:58 ` Pavel Emelyanov
2007-11-02 21:39 ` Theodore Tso
2007-11-03 4:34 ` Ulrich Drepper
2007-11-06 7:49 ` Pavel Emelyanov
2007-11-03 20:01 ` sukadev
2007-11-04 7:17 ` Eric W. Biederman
2007-11-02 17:30 ` Dave Hansen
2007-11-02 17:39 ` Linus Torvalds
2007-11-03 4:02 ` Nicholas Miell
2007-11-03 20:12 ` Ingo Molnar
2007-11-03 22:40 ` Linus Torvalds
2007-11-03 23:55 ` Arjan van de Ven
2007-11-04 0:21 ` david
2007-11-04 10:38 ` [patch] PID namespaces Ingo Molnar
2007-11-04 20:12 ` Dave Hansen
2007-11-05 14:47 ` Denys Vlasenko
2007-11-20 22:53 ` Futexes and network filesystems Er ic W. Biederman
2007-11-21 6:16 ` Kyle Moffett
2007-11-21 6:30 ` Eric W. Biederman
2007-11-01 16:12 ` [patch] PID namespace design bug, workaround Dave Hansen
2007-11-01 14:53 ` Ulrich Drepper
2007-11-01 15:05 ` Ingo Molnar
2007-11-01 18:57 ` Theodore Tso
2007-11-01 19:53 ` Ingo Molnar
2007-11-02 0:23 ` Ulrich Drepper
2007-11-01 15:02 ` Pavel Emelyanov [this message]
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=4729EA74.8090602@openvz.org \
--to=xemul@openvz.org \
--cc=drepper@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox