[CRIU] [PATCH] add join-ns opt to criu restore
Pavel Emelyanov
xemul at virtuozzo.com
Wed Mar 16 07:17:08 PDT 2016
On 03/16/2016 06:39 AM, Dengguangxing wrote:
> Hi, Pavel and Andrew,
>
> Thanks for your reviewing, I would never realize these problems by myself.
> I am not really familiar with namespace, so I don't know exactly what result
> this implementatin would lead to (I did some simple tests only).
> Really appreciate your opinions.
>
> Here are my solutions to your suggestions, please check if they make sense.
>
>> There are three things to sort out:
>>
>> 1. What if root task lives in netns, but we ask for --join-ns net?
> In such case, setns() will switch to the new ns.
That's OK, so the --join-ns is overriding the images. That's fine, just
emit a message about this in the log files with pr_info.
>> 2. What if we pass --unshare net and --join-ns net?
>> 3. What if we pass --empty-ns net and --join-ns net?
>>
> maybe should add flag_check rules(if we don't have one), --unshare, --empty-ns and
> --join-ns should conflict.
Yup. This would work I think. Please, add respective checks.
>>
>> Please, also fix the images/rpc.proto and criu/cr-service.c to support this option
>> in RPC API.
> Sorry for missing this, will append that
Awesome :)
Below are Andrey's comments, he would probably comment on them himself.
>>
>> A namespace may be mounted into a file:
>> [root at fc22-vm ~]# ip netns add test
>> [root at fc22-vm ~]# cat /proc/self/mountinfo | grep test
>> 82 80 0:3 net:[4026532214] /run/netns/test rw shared:32 - nsfs nsfs rw
> The opt can be in "NS:PID | PATH" format. finnally It will be parsed into filepath,
> like /proc/12345/ns/net and /run/netns/test
>
>>
>> If a root task is restore in a new userns, you will not ablt to join
>> external namespaces here. setns() will return EPERM.
> leave user-ns setting to the last one to perform
>
>>
>> You need to set proper uid and gid to joing an user namespace
> users can set uid and gid while joining user-ns. if not specified, use default one (0?)
>
>
>>
>> You need to open namespace files before calling setns for them,
>> because namespace files can become unaccessiable after switching into
>> another mount namespace.
> Awesome! I will amend this as you said
>
> Ps I will complement and regulate the comment.
>
> Best Regards!
> Deng
>
> .
>
More information about the CRIU
mailing list