restore: do not kill processes if not-all of them have been created
If processes are restored without pidns, criu knows pidtheir -s from images, but part of those task may have not yet forked, and thus the pids can not exist or (!) be used by other processes. To address that we abort stages RESTORE_NS and FORKING without killing tasks, but with task_entries->start futex by writing STATE_FAIL into it and making the tasks to check that. Since during RESTORE_NS and FORKING stages tasks can only block on the mentioned futes, we can safely do it. Signed-off-by:Andrey Vagin <avagin@openvz.org> Signed-off-by:
Pavel Emelyanov <xemul@parallels.com>
Showing
Please
register
or
sign in
to comment