criu
criu copied to clipboard
CRIU failed to restore LXC container in Ubuntu 22.04
Description
CRIU failed to restore LXC container
Steps to reproduce the issue:
- Install criu (v3.16.1) and lxc (5.0.0) in Ubuntu 22.04.4 (5.15.0-112-generic)
- Create and run LXC container with Xenial:
sudo lxc-create --name=u2 --template=download -- --dist ubuntu --release xenial --arch amd64
sudo lxc-start u2
- Create checkpoint via lxc-checkpoint:
sudo lxc-checkpoint -s -n u2 -D /tmp/u2 -v
or directly running CRIU from shell:
/usr/sbin/criu.orig dump --tcp-established --file-locks --link-remap --manage-cgroups=full --ext-mount-map auto --enable-external-sharing --enable-external-masters --enable-fs hugetlbfs --enable-fs tracefs -D /tmp/u2 -o /tmp/u2/dump.log --cgroup-root cpuset,cpu,io,memory,hugetlb,pids,rdma,misc:lxc.payload.u2 -v4 --ext-mount-map /sys/fs/fuse/connections:sys/fs/fuse/connections -t $APP_PID --skip-in-flight --freeze-cgroup /sys/fs/cgroup/lxc.payload.u2
- Restore from checkpoint via lxc-checkpoint:
sudo lxc-checkpoint -r -n u2 -D /tmp/u2 -v
or directly running CRIU from shell:
sudo /usr/sbin/criu.orig restore --tcp-established --file-locks --link-remap --manage-cgroups=full --ext-mount-map auto --enable-external-sharing --enable-external-masters --enable-fs hugetlbfs --enable-fs tracefs -D /tmp/u2 -o /tmp/u2/restore.log --cgroup-root cpuset,cpu,io,memory,hugetlb,pids,rdma,misc:lxc.payload.u2 -v4 --ext-mount-map sys/fs/fuse/connections:/sys/fs/fuse/connections --root /usr/lib/x86_64-linux-gnu/lxc --restore-detached --restore-sibling --ext-mount-map console: --external veth[eth0]:vethnH9tQz@lxcbr0
Describe the results you received:
The restoring process fails with:
...
(00.022063) 1: mnt: Start with 0:/tmp/.criu.mntns.MwBUXU
(00.022080) 1: mnt: Start with 0:/tmp/.criu.mntns.MwBUXU
(00.022368) 1: mnt: Start with 0:/tmp/.criu.mntns.MwBUXU
(00.022374) 1: mnt: Mounting **unsupported** @/tmp/.criu.mntns.MwBUXU/13-0000000000/ (0)
(00.022383) 1: mnt: 745:/tmp/.criu.mntns.MwBUXU/13-0000000000/ private 0 shared 0 slave 1
(00.022393) 1: mnt: Mounting tmpfs @/tmp/.criu.mntns.MwBUXU/13-0000000000/dev (0)
(00.022400) 1: Error (criu/mount.c:1979): mnt: Unable to mount none /tmp/.criu.mntns.MwBUXU/13-0000000000/dev (id=746): No such file or directory
(00.022404) 1: Error (criu/mount.c:2044): mnt: Can't mount at /tmp/.criu.mntns.MwBUXU/13-0000000000/dev: No such file or directory
(00.022406) 1: mnt: Start with 0:/tmp/.criu.mntns.MwBUXU
(00.025367) Error (criu/mount.c:3385): mnt: Can't remove the directory /tmp/.criu.mntns.MwBUXU: Device or resource busy
(00.025376) Error (criu/cr-restore.c:2447): Restoring FAILED.
Describe the results you expected:
The successful completion of restore operation.
Additional information you deem important (e.g. issue happens only occasionally):
The same issue happens with CRIU build from master branch.
CRIU logs and information:
$ sudo /usr/sbin/criu --version
Version: 3.16.1
$ sudo /usr/sbin/criu check --all
sudo: mon_handle_sigchld: waitpid: No child processes
Looks good.