Commit a7281b11 authored by Andrei Vagin's avatar Andrei Vagin

test: restore ns_last_pid before executing restore in a second time

It is required for cases when we inject a fault in criu restore.
In this case we execute "criu restore" and check that it fails,
then we execute "criu restore" without a fault and check that it passes.

If the first "criu restore" restores only a part of processes,
the second criu can get PID of one of restored processes.

https://github.com/xemul/criu/issues/282Signed-off-by: 's avatarAndrei Vagin <avagin@virtuozzo.com>
parent 8544895a
......@@ -851,6 +851,8 @@ class criu:
status_fds = os.pipe()
s_args += ["--status-fd", str(status_fds[1])]
ns_last_pid = open("/proc/sys/kernel/ns_last_pid").read()
ret = self.__criu.run(action, s_args, self.__fault, strace, preexec, nowait)
if nowait:
......@@ -873,6 +875,9 @@ class criu:
else:
# on restore we move only a log file, because we need images
os.rename(os.path.join(__ddir, log), os.path.join(__ddir, log + ".fail"))
# restore ns_last_pid to avoid a case when criu gets
# PID of one of restored processes.
open("/proc/sys/kernel/ns_last_pid", "w+").write(ns_last_pid)
# try again without faults
print "Run criu " + action
ret = self.__criu.run(action, s_args, False, strace, preexec)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment