[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