From b44d39ba5dfd6ece0518e7a47e9b7b28326d76f6 Mon Sep 17 00:00:00 2001 From: Cyrill Gorcunov Date: Tue, 15 May 2018 11:12:38 +0300 Subject: [PATCH] zdtm: Don't fail in __construct_root if entries exist Otherwise we might get | OSError: [Errno 17] File exists: '/tmp/criu-root-f8klhI/bin' | os.symlink(".." + ldir, self.root + "/usr" + ldir) | OSError: [Errno 17] File exists | File "zdtm.py", line 209, in __mknod | os.mknod(name, stat.S_IFCHR, rdev) | OSError: [Errno 17] File exists Signed-off-by: Cyrill Gorcunov Signed-off-by: Andrei Vagin --- test/zdtm.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/test/zdtm.py b/test/zdtm.py index eb9914530..d4f018d17 100755 --- a/test/zdtm.py +++ b/test/zdtm.py @@ -214,16 +214,19 @@ class ns_flavor: rdev = os.stat(name).st_rdev name = self.root + name - os.mknod(name, stat.S_IFCHR, rdev) - os.chmod(name, 0666) + if not os.access(name, os.F_OK): + os.mknod(name, stat.S_IFCHR, rdev) + os.chmod(name, 0666) def __construct_root(self): for dir in self.__root_dirs: - os.mkdir(self.root + dir) - os.chmod(self.root + dir, 0777) + if not os.access(self.root + dir, os.F_OK): + os.mkdir(self.root + dir) + os.chmod(self.root + dir, 0777) for ldir in ["/bin", "/sbin", "/lib", "/lib64"]: - os.symlink(".." + ldir, self.root + "/usr" + ldir) + if not os.access(self.root + "/usr" + ldir, os.F_OK): + os.symlink(".." + ldir, self.root + "/usr" + ldir) self.__mknod("tty", os.makedev(5, 0)) self.__mknod("null", os.makedev(1, 3))