[CRIU] CRIU LXC error

Andrew Vagin avagin at parallels.com
Thu Feb 20 11:38:23 PST 2014


Hello Urgen,

On Mon, Feb 17, 2014 at 03:29:33PM +0545, Urgen Sherpa wrote:
> I removed the line "lxc.cgroup.devices.allow = c 5:1 rwm"..below is the output
> 
> root at ktmnp:/home/nplink/criu-1.1# ./criu dump -D /dumps/ -t 1648
> --tcp-established --file-lock
> Error (parasite-syscall.c:387): si_code=4 si_pid=1966 si_status=5
> Error (parasite-syscall.c:387): si_code=4 si_pid=1968 si_status=5
> Error (parasite-syscall.c:387): si_code=4 si_pid=1969 si_status=5
> Error (mount.c:548): Can't bind-mount 45:/run to /tmp/cr-tmpfs.clOenq: No such
> file

Sorry for long delay. Thank you for the repoort.

Could you try out the attached patch?

> Error (namespaces.c:445): Namespaces dumping finished with error 65280
> Error (cr-dump.c:1828): Dumping FAILED.
> 
> i created the file in /tmp/cr-tmpfs  but the name changed every time i run the
> criu dump .
> Thank you

> 
> 
> On Fri, Feb 14, 2014 at 8:14 PM, Andrew Vagin <avagin at parallels.com> wrote:
> 
>     On Fri, Feb 14, 2014 at 11:25:14AM +0545, Urgen Sherpa wrote:
>     > Hellow Andrew ,
>     > i removed this line --CONFIG_DEVPTS_MULTIPLE_INSTANCES=y  from file /etc/
>     boot/
>     > config-3.11.0-12-generic.when i run criudump at first thiserror is
> 
>     I have not asked to do this. I have asked to delete the
>     "lxc.cgroup.devices.allow = c 5:1 rwm" line from the config file.
> 
>     Then you need to restart CT and try to dump it again.
> 
>     Thanks.
> 
>     > showed.root at ktmnp:/home/nplink/criu-1.1# cat /dumps/dumps.log
>     > Error (sk-netlink.c:77): The socket has data to read
>     > Error (cr-dump.c:1493): Dump files (pid: 1877) failed with -1
>     > Error (cr-dump.c:1828): Dumping FAILED.
>     > On second run :-
>     > root at ktmnp:/home/nplink/criu-1.1# ./criu dump -t 1654 -D /dumps/ -o
>     dumps.log
>     > root at ktmnp:/home/nplink/criu-1.1# cat /dumps/dumps.log
>     > Error (parasite-syscall.c:387): si_code=4 si_pid=1930 si_status=5
>     > Error (parasite-syscall.c:387): si_code=4 si_pid=1931 si_status=5
>     > Error (parasite-syscall.c:387): si_code=4 si_pid=1932 si_status=5
>     > Error (tty.c:203): tty: Can't obtain ptmx index: Inappropriate ioctl for
>     device
>     > Error (cr-dump.c:1493): Dump files (pid: 2074) failed with -1
>     > Error (cr-dump.c:1828): Dumping FAILED.
>     >
>     > Do i have to compile the kernel and set the
>     CONFIG_DEVPTS_MULTIPLE_INSTANCES=n
>     > or is there any other way?
>     > thank you
>     >
>     >
>     > On Wed, Feb 12, 2014 at 1:34 PM, Andrew Vagin <avagin at parallels.com>
>     wrote:
>     >
>     >     On Wed, Feb 12, 2014 at 11:26:25AM +0545, Urgen Sherpa wrote:
>     >     > hi,
>     >     > the output of reading mountinfo is as follows
>     >     > root at ktmnp:/home/nplink# lxc-info -n test-container
>     >     > state:   RUNNING
>     >     > pid:      4953
>     >     > root at ktmnp:/home/nplink# cat /proc/4953/mountinfo
>     >     > 131 72 252:0 /var/lib/lxc/test-container/rootfs / rw,relatime -
>     ext4 /dev
>     >     /
>     >     > mapper/ktmnp--vg-root rw,errors=remount-ro,data=ordered
>     >     > 132 131 0:65 / /proc rw,nosuid,nodev,noexec,relatime - proc proc rw
>     >     > 133 131 0:66 / /sys rw,relatime - sysfs sysfs rw
>     >     > 134 133 0:17 / /sys/fs/fuse/connections rw,relatime - fusectl none
>     rw
>     >     > 135 133 0:6 / /sys/kernel/debug rw,relatime - debugfs none rw
>     >     > 136 133 0:10 / /sys/kernel/security rw,relatime - securityfs none
>     rw
>     >     > 137 133 0:22 / /sys/fs/pstore rw,relatime - pstore none rw
>     >     > 73 131 0:67 / /dev/pts rw,relatime - devpts devpts rw,gid=5,mode=
>     >     620,ptmxmode=
>     >     > 666
>     >     > 74 131 0:67 /ptmx /dev/ptmx rw,relatime - devpts devpts rw,gid=
>     5,mode=
>     >     > 620,ptmxmode=666
>     >     > 75 133 0:68 / /sys/fs/cgroup rw,relatime - tmpfs none rw,size=
>     4k,mode=755
>     >     > 76 131 0:69 / /run rw,nosuid,noexec,relatime - tmpfs none rw,size=
>     >     49484k,mode=
>     >     > 755
>     >     > 77 76 0:70 / /run/lock rw,nosuid,nodev,noexec,relatime - tmpfs none
>     >     rw,size=
>     >     > 5120k
>     >     > 78 76 0:71 / /run/shm rw,nosuid,nodev,relatime - tmpfs none rw
>     >     > 79 76 0:72 / /run/user rw,nosuid,nodev,noexec,relatime - tmpfs none
>     >     rw,size=
>     >     > 102400k,mode=755
>     >     >
>     >     > with reference to https://help.ubuntu.com/lts/serverguide/lxc.html#
>     >     > lxc-installation I stopped and started container with with this..
>     >     >
>     >     > #lxc-start -n test-container -f /var/lib/lxc/test-container/config
>     >     > heres what /var/lib/lxc/test-container/config looks like.
>     >     > #cat config
>     >     >
>     >     > lxc.console = none
>     >     > lxc.network.type = veth
>     >     > lxc.network.hwaddr = 00:16:3e:b3:f5:95
>     >     > lxc.network.flags = up
>     >     > lxc.network.link = lxcbr0
>     >     > lxc.rootfs = /var/lib/lxc/test-container/rootfs
>     >     > lxc.mount = /var/lib/lxc/test-container/fstab
>     >     > lxc.pivotdir = lxc_putold
>     >     > lxc.devttydir = lxc
>     >     > lxc.tty = 0
>     >     > lxc.pts = 1024
>     >     > lxc.utsname = test-containerq
>     >     > lxc.arch = amd64
>     >     > lxc.cap.drop = sys_module mac_admin mac_override sys_time
>     >     > lxc.cgroup.memory.limit_in_bytes = 1994M
>     >     >
>     >     > lxc.cgroup.devices.deny = a
>     >     > lxc.cgroup.devices.allow = c *:* m
>     >     > lxc.cgroup.devices.allow = b *:* m
>     >     > lxc.cgroup.devices.allow = c 1:3 rwm
>     >     > lxc.cgroup.devices.allow = c 1:5 rwm
>     >     > lxc.cgroup.devices.allow = c 5:1 rwm
>     >
>     >     This line allows to use /dev/console. Could you try to remove it and
>     dump
>     >     CT?
>     >
>     >     > lxc.cgroup.devices.allow = c 5:0 rwm
>     >     > lxc.cgroup.devices.allow = c 1:9 rwm
>     >     > lxc.cgroup.devices.allow = c 1:8 rwm
>     >     > lxc.cgroup.devices.allow = c 136:* rwm
>     >     > lxc.cgroup.devices.allow = c 5:2 rwm
>     >     > lxc.cgroup.devices.allow = c 254:0 rm
>     >     > lxc.cgroup.devices.allow = c 10:229 rwm
>     >     > lxc.cgroup.devices.allow = c 10:200 rwm
>     >     > lxc.cgroup.devices.allow = c 1:7 rwm
>     >     > lxc.cgroup.devices.allow = c 10:228 rwm
>     >     > lxc.cgroup.devices.allow = c 10:232 rwm
>     >     >
>     >     >
>     >     > Below is my kernel config
>     >     >
>     >     > #vim /boot/config-3.11.0-12-generic
>     >     > ...
>     >     > ,,,,
>     >     > ...
>     >     > # Character devices
>     >     > #
>     >     > CONFIG_TTY=y
>     >     > CONFIG_VT=y
>     >     > CONFIG_CONSOLE_TRANSLATIONS=y
>     >     > CONFIG_VT_CONSOLE=y
>     >     > CONFIG_VT_CONSOLE_SLEEP=y
>     >     > CONFIG_HW_CONSOLE=y
>     >     > CONFIG_VT_HW_CONSOLE_BINDING=y
>     >     > CONFIG_UNIX98_PTYS=y
>     >     > CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
>     >     > CONFIG_LEGACY_PTYS=y
>     >     > CONFIG_LEGACY_PTY_COUNT=0
>     >     > CONFIG_SERIAL_NONSTANDARD=y
>     >     > CONFIG_ROCKETPORT=m
>     >     > CONFIG_CYCLADES=m
>     >     > ....
>     >     > ...
>     >     >
>     >     > Thankyou gentlemen
>     >     >
>     >     >
>     >     >
>     >     > On Tue, Feb 11, 2014 at 7:02 PM, Andrew Vagin <avagin at parallels.com
>     >
>     >     wrote:
>     >     >
>     >     >     On Tue, Feb 11, 2014 at 04:47:34PM +0400, Cyrill Gorcunov
>     wrote:
>     >     >     > On Tue, Feb 11, 2014 at 04:26:09PM +0400, Cyrill Gorcunov
>     wrote:
>     >     >     > > On Tue, Feb 11, 2014 at 05:32:46PM +0545, Urgen Sherpa
>     wrote:
>     >     >     > > >    /usr/lib/locale/C.UTF-8/LC_CTYPE (path inode=2883985)
>     >     >     > > >    getty   2700 root    0u   CHR    5,1      0t0  937203
>     /dev/
>     >     console
>     >     >     > > >    getty   2700 root    1u   CHR    5,1      0t0  937203
>     /dev/
>     >     console
>     >     >     > > >    getty   2700 root    2u   CHR    5,1      0t0  937203
>     /dev/
>     >     console
>     >     >     > >
>     >     >     > > Aha! So we're trying to dump /dev/console. I guess it's VT
>     >     terminal,
>     >     >     > > which has no "fetch index" operation. Need to think how to
>     >     resolve it,
>     >     >     > > thanks for report!
>     >     >     >
>     >     >     > Urgen, are you sure that you've set lxc.console = none and
>     lxc.tty
>     >     = 0 ?
>     >     >     > The presense of /dev/console here with getty over it makes me
>     thing
>     >     >     > that lcx either not read your config, or you need to restart
>     lcx
>     >     >     container
>     >     >     > probably.
>     >     >
>     >     >     Probaly this CT uses devtmpfs, which isn't virtualized.
>     >     >
>     >     >     # cat /proc/pid/mountinfo
>     >     >
>     >     >     Which processes in CT have opened /dev/console?
>     >     >
>     >     >     >
>     >     >     > Also, do you have
>     >     >     >
>     >     >     > CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
>     >     >     >
>     >     >     > in your kernel config?
>     >     >     >
>     >     >     >       Cyrill
>     >     >
>     >     >
>     >
>     >
> 
> 
-------------- next part --------------
diff --git a/mount.c b/mount.c
index 3d72521..cc980c6 100644
--- a/mount.c
+++ b/mount.c
@@ -524,7 +524,6 @@ static int close_mountpoint(DIR *dfd)
 static DIR *open_mountpoint(struct mount_info *pm)
 {
 	int fd = -1, ns_old = -1;
-	char buf[PATH_MAX];
 	char mnt_path[] = "/tmp/cr-tmpfs.XXXXXX";
 
 	/*
@@ -552,8 +551,7 @@ static DIR *open_mountpoint(struct mount_info *pm)
 		goto out;
 	}
 
-	snprintf(buf, sizeof(buf), "/proc/self/root/%s", pm->mountpoint);
-	if (mount(buf, mnt_path, NULL, MS_BIND, NULL)) {
+	if (mount(pm->mountpoint, mnt_path, NULL, MS_BIND, NULL)) {
 		pr_perror("Can't bind-mount %d:%s to %s",
 				pm->mnt_id, pm->mountpoint, mnt_path);
 		rmdir(mnt_path);


More information about the CRIU mailing list