[Devel] Re: [PATCH 0/6][lxc][v3] Link LXC with USERCR

Oren Laadan orenl at cs.columbia.edu
Wed Mar 31 22:43:33 PDT 2010



Daniel Lezcano wrote:
> Serge E. Hallyn wrote:
>> Quoting Daniel Lezcano (dlezcano at fr.ibm.com):
>>> Sukadev Bhattiprolu wrote:
>>>> lxc-checkpoint, lxc-restart in the LXC source tree are currently stubs.
>>>> Following set of patches, when applied to LXC and built with USERCR as
>>>> described below, enable enable lxc-checkpoint and lxc-restart of some
>>>> simple containers
>>> [ ... ]
>>>
>>>> 3. Checkpoint/restart a simple LXC container
>>>>
>>>> 	$ lxc-execute --name foo --rcfile lxc-no-netns.conf -- /bin/sleep 1000
>>>>
>>>> 	$ lxc-checkpoint --name foo --image /root/lxc-foo.ckpt
>>>>
>>>> 	$ lxc-stop --name foo
>>>>
>>>> 	$ lxc-restart --name foo --image /root/lxc-foo.ckpt
>>> Finally, using ckpt-v20-dev, I succeeded to checkpoint sleep but
>>> when I restart, I got the error:
>>>
>>> <4534>number of tasks: 2
>>> <4534>number of vpids: 0
>>> <4534>total tasks (including ghosts): 2
>>> <4534>pid 2: inherit sid 0
>>> <4534>pid 2: creator set to 1
>>> <4534>====== TASKS
>>> <4534>	[0] pid 1 ppid 0 sid 0 creator 0
>>> <4534>	[1] pid 2 ppid 1 sid 0 creator 1
>>> <4534>............
>>> <4534>task[0].vidx = -1
>>> <4534>task[1].vidx = -1
>>> <4534>new pidns with init
>>> <4534>forking child vpid 1 flags 0x321
>>> <4534>task 1 forking with flags 20020011 numpids 1
>>> <4534>task 1 pid[0]=0
>>> <4535>====== PIDS ARRAY
>>> <4535>[0] pid 1 ppid 0 sid 0 pgid 0
>>> <4535>[1] pid 2 ppid 1 sid 0 pgid 0
>>> <4535>............
>>> Error: /dev/ptmx must be a link to /dev/pts/ptmx
>>> <4534>forked child vpid 4536 (asked 1)
>>> root task exited status 0
>>>
>>> What can I do to prevent this error ?
>> test -e /dev/pts/ptmx || (echo "Don't go through with the rest of this" && exit)
>> rm -f /dev/ptmx
>> ln -s /dev/pts/ptmx /dev/ptmx
>> chmod 666 /dev/ptmx
> 
> I was able to CR a simple program like sleep.
> 
> But most of the simple test programs I run, exit right after the restart 
> was marked successful instead of continuing their execution.
> 
> In the kernel I see the traces:
> 
> [26108:3:c/r:restore_debug_free:145] active pid was 3, ctx->errno 0
> [26108:3:c/r:restore_debug_free:147] kflags 6 uflags 0 oflags 3
> [26108:3:c/r:restore_debug_free:149] task[0] to run 1
> [26108:3:c/r:restore_debug_free:149] task[1] to run 2
> [26108:3:c/r:restore_debug_free:149] task[2] to run 3
> [26108:3:c/r:restore_debug_free:174] pid 26104 type Coord state Success
> [26108:3:c/r:restore_debug_free:174] pid 26106 type Root state Success
> [26108:3:c/r:restore_debug_free:174] pid 26107 type Task state Success
> [26108:3:c/r:restore_debug_free:174] pid 26108 type Task state Success
> [26108:3:c/r:pgarr_release_pages:102] total pages 0
> [26108:3:c/r:do_restart:1446] sys_restart returns -516
> 
> What does mean -516 ? an error ?

It means ERESTART_RESTARTBLOCK - it's the way sys_restart tells
the kernel to resume the previous sleep by reusing the exact same
mechanism in the kernel to resume a previous sleep after a signal
or freeze.

You can request that the application be frozen when restart is
complete, and then attach with a debugger and single step it to
see what's happening. See the --freezer=  option of 'restart'.

Oren.

> 
> I am running on a x86_64.
> 
> Thanks
>    -- Daniel
> 
> _______________________________________________
> Containers mailing list
> Containers at lists.linux-foundation.org
> https://lists.linux-foundation.org/mailman/listinfo/containers
> 
_______________________________________________
Containers mailing list
Containers at lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers




More information about the Devel mailing list