[CRIU] [PATCH 5/5] zdtm: now tempfs_overmounted will pass so remove crfail
Pavel Tikhomirov
ptikhomirov at virtuozzo.com
Fri Dec 8 11:24:59 MSK 2017
It does not work with your test. But problem is not with dumping mounts:
Mountinfo before dump:
445 486 0:58 / /zdtm/static/tempfs_overmounted.test/a rw,relatime -
tmpfs none rw
446 445 0:59 / /zdtm/static/tempfs_overmounted.test/a rw,relatime -
tmpfs none rw
447 446 0:60 / /zdtm/static/tempfs_overmounted.test/a/b rw,relatime -
tmpfs none rw
From dump.log:
(00.039801) mnt: Dumping mountpoints
(00.039804) mnt: 447: 3c:/ @
./zdtm/static/tempfs_overmounted.test/a/b
(00.049538) mnt: 446: 3b:/ @ ./zdtm/static/tempfs_overmounted.test/a
(00.049551) mnt: Mount is not fully visible
./zdtm/static/tempfs_overmounted.test/a
(00.049589) mnt: mount has children
./zdtm/static/tempfs_overmounted.test/a
(00.065489) mnt: 445: 3a:/ @ ./zdtm/static/tempfs_overmounted.test/a
(00.065499) mnt: Mount is not fully visible
./zdtm/static/tempfs_overmounted.test/a
(00.065530) mnt: mount is overmounted
./zdtm/static/tempfs_overmounted.test/a
tmpfs-dev-59.tar.gz.img and tmpfs-dev-58.tar.gz.img both are saved.
We even mount both 445 and 446, in restore.log:
(00.101594) 1: mnt: Mounting tmpfs
@/tmp/.criu.mntns.szk2Td/9-0000000001/zdtm/static/tempfs_overmounted.test/a
(0)
(00.110129) 1: mnt:
445:/tmp/.criu.mntns.szk2Td/9-0000000001/zdtm/static/tempfs_overmounted.test/a
private 1 shared 0 slave 0
(00.110156) 1: mnt: Mounting tmpfs
@/tmp/.criu.mntns.szk2Td/9-0000000001/zdtm/static/tempfs_overmounted.test/a
(0)
(00.118390) 1: mnt:
446:/tmp/.criu.mntns.szk2Td/9-0000000001/zdtm/static/tempfs_overmounted.test/a
private 1 shared 0 slave 0
But here is the problem:
(00.152632) 1: mnt: Move mount
/tmp/.criu.mntns.szk2Td/9-0000000001/zdtm/static/tempfs_overmounted.test/a
->
/tmp/.criu.mntns.szk2Td/9-0000000000/zdtm/static/tempfs_overmounted.test/a
We want to move overmounted mount and thus instead move it's
children-overmount, that's why mount 445 is lost.
I think it is because remap code operates with does_mnt_overmount()
which checks that mount is sibling-overmount only, and
children-overmounts are not remapped.
Will check these idea.
--
Best regards, Tikhomirov Pavel
Software Developer, Virtuozzo.
More information about the CRIU
mailing list