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 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.