Re: [patch] PID namespace design bug, workaround

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Ingo Molnar
Date: Thursday, November 1, 2007 - 12:53 pm

* Theodore Tso <tytso@mit.edu> wrote:


ok, updated patch below.

	Ingo

---------------->
From: Ingo Molnar <mingo@elte.hu>
Subject: PID namespaces: turn them off for now

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 
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 |    9 +++++++++
 1 file changed, 9 insertions(+)

Index: v/kernel/fork.c
===================================================================
--- v.orig/kernel/fork.c
+++ v/kernel/fork.c
@@ -1420,6 +1420,15 @@ 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.
+	 */
+	if (clone_flags & CLONE_NEWPID)
+		return -EINVAL;
+
 	if (unlikely(current->ptrace)) {
 		trace = fork_traceflag (clone_flags);
 		if (trace)
-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[patch] PID namespace design bug, workaround, Ingo Molnar, (Thu Nov 1, 7:43 am)
Re: [patch] PID namespace design bug, workaround, Pavel Emelyanov, (Thu Nov 1, 7:51 am)
Re: [patch] PID namespace design bug, workaround, Ulrich Drepper, (Thu Nov 1, 7:53 am)
Re: [patch] PID namespace design bug, workaround, Peter Zijlstra, (Thu Nov 1, 7:56 am)
Re: [patch] PID namespace design bug, workaround, Ulrich Drepper, (Thu Nov 1, 7:56 am)
Re: [patch] PID namespace design bug, workaround, Pavel Emelyanov, (Thu Nov 1, 8:02 am)
Re: [patch] PID namespace design bug, workaround, Pavel Emelyanov, (Thu Nov 1, 8:05 am)
Re: [patch] PID namespace design bug, workaround, Ingo Molnar, (Thu Nov 1, 8:05 am)
Re: [patch] PID namespace design bug, workaround, Pavel Emelyanov, (Thu Nov 1, 8:06 am)
Re: [patch] PID namespace design bug, workaround, Ingo Molnar, (Thu Nov 1, 8:17 am)
Re: [patch] PID namespace design bug, workaround, Pavel Emelyanov, (Thu Nov 1, 8:30 am)
Re: [patch] PID namespace design bug, workaround, Dave Hansen, (Thu Nov 1, 9:12 am)
Re: [patch] PID namespace design bug, workaround, Theodore Tso, (Thu Nov 1, 11:57 am)
Re: [patch] PID namespace design bug, workaround, Ingo Molnar, (Thu Nov 1, 12:53 pm)
Re: [patch] PID namespace design bug, workaround, Ulrich Drepper, (Thu Nov 1, 5:21 pm)
Re: [patch] PID namespace design bug, workaround, Ulrich Drepper, (Thu Nov 1, 5:23 pm)
Re: [patch] PID namespace design bug, workaround, Pavel Emelyanov, (Fri Nov 2, 12:55 am)
Re: [patch] PID namespace design bug, workaround, Andrew Morton, (Fri Nov 2, 1:04 am)
Re: [patch] PID namespace design bug, workaround, Pavel Emelyanov, (Fri Nov 2, 1:14 am)
Re: [patch] PID namespace design bug, workaround, Ulrich Drepper, (Fri Nov 2, 7:05 am)
Re: [patch] PID namespace design bug, workaround, Pavel Emelyanov, (Fri Nov 2, 7:21 am)
Re: [patch] PID namespace design bug, workaround, Ulrich Drepper, (Fri Nov 2, 8:34 am)
Re: [patch] PID namespace design bug, workaround, Pavel Emelyanov, (Fri Nov 2, 8:58 am)
Re: [patch] PID namespace design bug, workaround, Dave Hansen, (Fri Nov 2, 10:30 am)
Re: [patch] PID namespace design bug, workaround, Linus Torvalds, (Fri Nov 2, 10:39 am)
Re: [patch] PID namespace design bug, workaround, Theodore Tso, (Fri Nov 2, 2:39 pm)
Re: [patch] PID namespace design bug, workaround, Nicholas Miell, (Fri Nov 2, 9:02 pm)
Re: [patch] PID namespace design bug, workaround, Ulrich Drepper, (Fri Nov 2, 9:34 pm)
Re: [patch] PID namespace design bug, workaround, Ingo Molnar, (Sat Nov 3, 1:12 pm)
Re: [patch] PID namespace design bug, workaround, Linus Torvalds, (Sat Nov 3, 3:40 pm)
Re: [patch] PID namespace design bug, workaround, Arjan van de Ven, (Sat Nov 3, 4:55 pm)
Re: [patch] PID namespace design bug, workaround, Eric W. Biederman, (Sun Nov 4, 12:17 am)
Re: [patch] PID namespaces, Ingo Molnar, (Sun Nov 4, 3:38 am)
Re: [patch] PID namespaces, Dave Hansen, (Sun Nov 4, 1:12 pm)
Re: [patch] PID namespaces, Denys Vlasenko, (Mon Nov 5, 7:47 am)
Re: [patch] PID namespace design bug, workaround, Pavel Emelyanov, (Tue Nov 6, 12:49 am)
Futexes and network filesystems., Er ic W. Biederman, (Tue Nov 20, 3:53 pm)
Re: Futexes and network filesystems., Kyle Moffett, (Tue Nov 20, 11:16 pm)
Re: Futexes and network filesystems., Eric W. Biederman, (Tue Nov 20, 11:30 pm)