E Eric W. Biederman #
Message details and related content
"Michael Kerrisk (man-pages)" [off-list ref] writes:
Hi Eric, On Tue, Jan 1, 2013 at 10:39 AM, Eric W. Biederman [off-list ref] wrote:quoted
"Michael Kerrisk (man-pages)" [off-list ref] writes:quoted
Hi Eric, On Thu, Dec 27, 2012 at 6:47 PM, Eric W. Biederman [off-list ref] wrote:quoted
There is one other bit that needs to be documented in clone, although I am not certain where/how. The sequences: unshare(CLONE_NEWPID). clone(CLONE_VM) setns(fd, CLONE_NEWPID). clone(CLONE_VM). Now fail.Can you define "now" please. Which kernel version?3.8 The sequence was impossible in 3.7. I think that change that made that impossible happened in the 3.8-rc1 to
^^^^^^^^^ illegal 3.8-rc1 made the sequence possible.
quoted
3.8-rc2 window.Adding something along these lines to the man page would be fine, but we need some text to explain *why* these sequences fail. Could you send me a sentence or two about that?
The basic principle is every thread in a process must be in the same pid
namespace. As unshare(CLONE_NEWPID) and setns(fd, CLONE_NEWPID) only
change the pid namespace for created children creating a child process
that is a thread would put that thread in a different pid namespace.
Creating a multithreaded application and then setns(fd, CLONE_NEWPID or
clone(CLONE_NEWPID) was outlawed because it was two bizarre and no one
cared. Oleg noticed you could create the threads afterwards and get
into a bizarre state that no one wanted to support.
Eric