mirror of
https://github.com/checkpoint-restore/criu.git
synced 2026-08-02 14:52:19 +00:00
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/282 Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
This commit is contained in:
parent
8544895a52
commit
a7281b11fd
1 changed files with 5 additions and 0 deletions
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue