Skip to content

Commit

Permalink
zdtm: verify that criu repo file system allows resolving device files
Browse files Browse the repository at this point in the history
We put several device files into zdtm container through its root
file system which is the same file system criu git resides in.

We do it like this to overcome inability to create character and block
device files in user namespaces. So even if we put those device files
into zdtm container in any other way, in 'uns' flavor CRIU would not be
able to restore those device files.

Other option can be - creating auxiliary tmpfs mount and add it into
zdtm container as external mount, but that looks like an overkill for
this problem. Let's print a clear error so that user can either mount
current file system without 'nodev" or put criu somewhere else.

Fixes: checkpoint-restore#2441

Signed-off-by: Pavel Tikhomirov <[email protected]>
  • Loading branch information
Snorch committed Jul 15, 2024
1 parent a11e944 commit bbaaaa7
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions test/zdtm.py
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,14 @@ def init(self, l_bins, x_bins):
self.__construct_root()
os.mknod(self.root + "/.constructed", stat.S_IFREG | 0o600)

try:
with open(self.root + "/dev/null"):
pass
except IOError as e:
if e.errno != errno.EACCES:
raise e
raise test_fail_exc("The filesystem of CRIU repo should not have 'nodev' flag. Consider putting CRIU on appropriate file system to run ZDTM.")

for b in l_bins:
self.__copy_libs(b)
for b in x_bins:
Expand Down

0 comments on commit bbaaaa7

Please sign in to comment.