[CRIU] RPC support for --shell-job missing on restore

Allan Cecil ac at sonic.net
Fri May 16 00:44:11 PDT 2014


On 2014-05-15 06:59, Pavel Emelyanov wrote:
> I'd like to notice here, that right now this is only possible if you
> terminate the whole existing process and
> restore one back from scratch using criu. However, we have a feature
> called "applying images" (http://criu.org/Applying_images)
> With it you will not have to kill the original process and the
> revert-back should become MUCH faster.

Applying images sounds very interesting - how do I do that?  I don't see 
it in the man page.  I've built from source so I can update or switch 
branches as needed.

> You might b einterested in the --exec-cmd option for criu. It causes
> criu to call execv() on whatever you want after
> restore thus making _your_ code control the restored processes.

I haven't figured out how to make this work, yet.  I'll keep 
experimenting.  I thought it was for saying "restore this into this 
screen session" but that did not work.

>> that would still work.  Unfortunately, even if I set the suid bit and 
>> attempt to restore from the command line I still get denied
>> bgecause the UID / GID doesn't match.
> 
> Can you shed more light on this? We tried to make it work like -- if
> we have images for user X, then if we restore from
> them from suid-ed criu and the user that does so is X as well, then we
> allow for that. Has that get broken?
> 

Here are the exact steps I'm taking.  First, I'm running as the 
unprivileged user named tas:
$ id
uid=1001(tas) gid=1001(tas) groups=1001(tas),110(kvm),119(nopasswdlogin)

I start screen and inside of screen I start nethack.  This produces the 
following ps axf -o pid,sid,pgid,uid,gid,comm output:

  9002  9002  9002  1001    43 screen
  9003  9003  9003  1001  1001  \_ bash
  9165  9003  9165  1001  1001      \_ nethack

If outside of screen I attempt to issue the command criu dump -v4 -t 
9002 as the same tas user I get this:

(00.014062) Obtaining task stat ... (00.014126) Error (security.c:34): 
UID/GID mismatch 1001 != (1001,43,43)
(00.014137) Error (cr-dump.c:1438): Check uid (pid: 9002) failed

For the record, the criu process has the stuid bit set:

-rwsr-xr-x 1 root root 779899 Apr 25 14:39 /usr/local/sbin/criu

I'm not sure what to make of this.  Thanks for your thoughts,

A.C.
******


More information about the CRIU mailing list