[CRIU] [PATCH 1/3] zdtm: Don't fail in __construct_root if entries exist
Cyrill Gorcunov
gorcunov at gmail.com
Tue May 15 11:12:38 MSK 2018
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 <gorcunov at gmail.com>
---
test/zdtm.py | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/test/zdtm.py b/test/zdtm.py
index eb9914530eae..d4f018d175be 100755
--- a/test/zdtm.py
+++ b/test/zdtm.py
@@ -214,16 +214,19 @@ arch = os.uname()[4]
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))
--
2.14.3
More information about the CRIU
mailing list