[CRIU] Restore failed. Exit code: 43

Paschalis Mpeis paschalis.mpeis at ed.ac.uk
Tue Jan 20 04:45:39 PST 2015


​The initialisation code, that runs before dump and restore is the
following:

>
> ​  ​
> int img_fd = open_img_dir("wdir/i/linpack_cr/");

    criu_init_opts();
>     criu_set_service_address("./wdir/s/cs.sk");
>     criu_set_images_dir_fd(img_fd);
> ​​
>
>     criu_set_log_level(4);


​The code to dump (which seems to work okay) is this:

>    int pid, ret;
>     // Create a child
>     pid = fork();
>     assert(pid>=0);
>
>     if(!pid){     // The child will dump itself
>         close(0); close(1); close(2);
>         assert(setsid()>=0);
>         criu_set_log_file("dump.log");
>         criu_set_leave_running(true)
>         ret = criu_dump();
>         if (ret < 0){
>             what_err_ret_mean(ret);
>             exit(1);
>         }
>         if (ret ==0)
>             ret = SUCC_DUMP_ECODE;
>         else if (ret ==1)
>             ret = SUCC_RSTR_ECODE;
>         else
>             ret =1;
>         exit(ret);
>     }// end-of child code
>     // Wait for the child to be captured
>     if(waitpid(pid,&ret,0)<0){
>         perror("Can't wait child");
>         kill(pid, SIGKILL);
>         exit(-1);
>     }
>     if(chk_exit(ret,SUCC_DUMP_ECODE)){
>         kill(pid,SIGKILL);
>         exit(-1);
>     }



Initially the restore code was taken from one of your tests.
I was using:

criu_set_log_file("restore.log");
> pid = criu_restore_child();
> if (pid <=0){ what_err_ret_mean(pid);
> exit(-1);
> }
>
> if(waitpid(pid, &ret, 0)<0){
> perror("Can't wait for restore");
> kill(pid,SIGKILL);
> exit(-1);
> }
> return chk_exit(ret,SUCC_DUMP_ECODE);


​chk_exit​ was printing the "exit 43" message. It is the function found
here:
https://github.com/xemul/criu/blob/master/test/libcriu/lib.c


Then I changed the restore code simply:

> criu_set_log_file("restore.log");
> criu_restore();


​This produces a similar restore.log, with success messages, but the
program does not seem to continue.

​Thanks for your replies.
I haven't found any other examples other than the tests directory. That's
why I based my code on them.

Cheers,
Paschalis​

On Tue Jan 20 2015 at 12:22:15 PM Cyrill Gorcunov <gorcunov at gmail.com>
wrote:

> On Tue, Jan 20, 2015 at 03:06:39PM +0300, Pavel Emelyanov wrote:
> > On 01/19/2015 10:31 PM, Paschalis Mpeis wrote:
> > > I am trying to capture, and replay a simple benchmark application.
> > > The application accepts as a command line argument (CLA) an integer
> value to denote whether we are capturing or restoring.
> > >
> > > On both capture and restore, I run the CRIU initialisation staff
> (provide folder for images, etc).
> > >
> > > I first run the application with the capture integer value. I set the
> leave_running option to true, I do the capture, which seems successful, and
> then the application continues execution and finishes.
> > >
> > > Then, I want to replay the application, from the point it was
> checkpointed. So I run again the application, and I pass as a CLA the
> restore integer value. For this case, the application simply initialises
> CRIU, and then tries to restore from the existing images.
> > >
> > > I get the following error:
> > > " `- FAIL (exit 43)"
> >
> > But that's not CRIU message. Who prints that and what does the "exit 43"
> mean?
> >
> > > You can find attached the dump.log and restore.log.
> >
> > The restore.log ends with
> >
> > (00.025773) Restore finished successfully. Resuming tasks.
> > (00.025795) 5084 was trapped
> > (00.025797) `- Expecting exit
> > (00.025804) 5084 was trapped
> > (00.025806) 5084 is going to execute the syscall f
> > (00.025823) 5084 was stopped
> > (00.025836) 5084 was trapped
> > (00.025838) 5084 is going to execute the syscall b
> > (00.025853) 5084 was stopped
> > (00.025857) Writing stats
> >
> > I.e. CRIU thinks that tasks are up and running.
>
> Yes, it means everything is up and fine. Paschalis could you please
> provide more details on your case
>
>  - the testing program itself
>  - step-by-step how you checkpointed and restored it
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openvz.org/pipermail/criu/attachments/20150120/89eda4e6/attachment-0001.html>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: not available
URL: <http://lists.openvz.org/pipermail/criu/attachments/20150120/89eda4e6/attachment-0001.ksh>


More information about the CRIU mailing list