[ https://issues.apache.org/jira/browse/MESOS-6540?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15633801#comment-15633801 ]
Jie Yu commented on MESOS-6540: ------------------------------- I think there are two problems here we try to solve: 1) Solving the issue for old style command task so that we can find the proper namespace to enter for debugging support 2) Moving containerizer launch to the host namespaces and let the process it exes be the PID 1 For 1), containerizer launch and the executor are in the namespaces (except for mnt namespace), i think we can use a short term work around to solve that because we will eventually deprecate the old style command task. For 2), it a more boarder discussion. that probably means that we need to ns::clone from linux launcher to containerizer launch. That means the Launcher interface should hide the details about how user process are created. It should take a ContainerLaunchInfo in fork and returns a pid that containerizer will checkpoint. The pid will be the pid of the actual user process. The mesos-containerizer launch helper will be a detail to Launcher. If ns::clone is in containerizer launch, then it'll properly send back the translated pid to containerizer launch which can communicate this pid back to agent using a simple pipe. > Pass the forked pid from `containerizer launch` to the agent and checkpoint > it. > ------------------------------------------------------------------------------- > > Key: MESOS-6540 > URL: https://issues.apache.org/jira/browse/MESOS-6540 > Project: Mesos > Issue Type: Task > Reporter: Kevin Klues > Assignee: Kevin Klues > Labels: debugging, mesosphere > > Right now the agent only knows about the pid of the "init" process forked by > {{launcher->fork()}}. However, in order to properly enter the namespaces of a > task for a nested container, we actually need the pid of the process that > gets launched by the {{containerizer launch}} binary. > Using this pid, isolators can properly enter the namespaces of the actual > *task* or *executor* launched by the {{containerizer launch}} binary instead > of just the namespaces of the "init" process (which may be different). > This will involve opening a domain socket with the {{containerizer launch}} > binary and passing the translated pid from the forked process back to the > agent. We can chieve this by opening the socket on the agent and passing the > path to it using {{launchFlags}}. -- This message was sent by Atlassian JIRA (v6.3.4#6332)