-
Notifications
You must be signed in to change notification settings - Fork 550
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Exec semantics #345
Comments
On Wed, Mar 16, 2016 at 12:37:22PM -0700, Vish Kannan wrote:
‘exec’ only landed three weeks ago with #225, so there's not a lot of Public out-of-spec discussion around separating sandbox creation from
I think the namespace creation and cgroup joining in the current spec
As far as cgroups are concerned, join-and-create-a-subgroup is easy $ nsenter funC start . would create a new container whose state was only accessible via: $ nsenter funC state and not directly via: $ funC state An extra nsenter call doesn't seem like that big a deal though. And this sort of nested-namespace approach will also make clarifying
|
@vishh i have always said i don't think exec should be in the spec because ppl want too many different things for it. This would be a much better solution instead of trying to code in every use case into this one feature. |
@crosbymichael: Yeah. Agreed. It's one thing to come up with a suggestion for implementing exec, but making it a standardized feature doesn't make sense. |
@vishh same. just because we choose not to standardize on exec because of the variations does not mean runtimes cannot implement it, it means they have more freedom to implement it to their specific requirements. |
On Wed, Mar 16, 2016 at 04:02:51PM -0700, Vish Kannan wrote:
This is fine with me, but see also [1,2,3]. ‘exec’ didn't get much |
@vishh I agree with @crosbymichael. I think there are too many variations and it might make sense to leave it up to the runtimes to implement it as required. |
yeah I'm slowly changing my mind on this :). I was initially in favour of standardising exec because it makes certain common things super easy (and as a higher-level system that wants the freedom to easily swap out runtimes, I really only want to rely on standardised bits). But I can't think of a case where there's something I can achieve with So +1 from me, as long as we agree (I think everyone does anyway?) that anything possible with exec should always also be possible via create/start with an appropriate config. |
@vishh as @julz said, as long as we can get the same net result with a secondary create/start then I'm ok with it. After reading your proposed doc changes for how all of this will be expressed in the config.json I'd like to explore some runc command line niceties to make it easier for people - or at least try, but that's secondary. |
@duglin The way I see it, I think runc can continue doing what it is doing today and then add additional features as necessary. |
@mrunalp do you mean expose it as "runc exec .." but under the covers do some kind of "join" to the existing namespaces/etc... ? |
@duglin Yes. |
@mrunalp that would be excellent! Does this mean we're closer to adopting the create/start split? :-) |
@duglin Still needs to be reviewed :D However, exec can be achieved either ways :) |
Yeah to be clear I think runC exec should stay, just I agree we don't need to specify it. Imo instead we should doc (in the spec) how to specify a config to exec a process in an existing container. Also seems potentially useful either in ocitools or runC to have a command to generate an exec config for a running container (but this isn't super hard to do manually anyway). |
After #388, is there anything left to do here? |
@wking It should be safe to close now. |
The current Spec attempts to express
exec
functionality by splitting the container into a sandbox and a process. This split fails to address some of the use cases like as follows -It is proving to be difficult to represent all the use cases and also preserve the semantics around the sandbox and the process.
Have we considered representing
exec
as a separate container with a process? That separate container can share some parts of the existing container's sandbox.IIRC, the Spec tried to represent
exec
as a separate container in the beginning, but I cannot recall when it diverged from the original plan.cc @crosbymichael @mrunalp
The text was updated successfully, but these errors were encountered: