[CRIU] [PATCH RESEND 0/4] Fix restore of tasks having zombie pgid
Kirill Tkhai
ktkhai at virtuozzo.com
Thu Dec 28 13:50:29 MSK 2017
(RESENDING because patchwork breaks on [4/4] commit message)
This problem originally was detected on Virtuozzo 7 criu package
and is connected with tasks having zombie sid. For criu-dev
it's actual for pgid inherited from a zombie.
The problem is a zombie may be choosen as parent for a task helper.
Zombie does not expect its children may exit, and it's being blaimed
by generic SIGCHLD handler in this case. See patch [3/4] for details.
Also, there is a problem that prepare_fds() is not called for zombie
for such cases. Zombie does not have open files, but it shares fdt
with task helper and must do that just to increment fdt::fdt_lock.
See patch [2/4] for details. Patch [4/4] contains the test.
https://travis-ci.org/tkhai/criu/builds/322479960
---
Kirill Tkhai (4):
zdtm: Export sys_clone_unified() to headers
restore: Call prepare_fds() in restore_one_zombie()
restore: Split restore_one_helper() and wait exiting zombie children
zdtm: Add zombie01 test
criu/cr-restore.c | 36 ++++++++++++------
test/zdtm/lib/zdtmtst.h | 2 +
test/zdtm/static/Makefile | 1 +
test/zdtm/static/zombie01.c | 80 ++++++++++++++++++++++++++++++++++++++++
test/zdtm/static/zombie01.desc | 1 +
5 files changed, 107 insertions(+), 13 deletions(-)
create mode 100644 test/zdtm/static/zombie01.c
create mode 100644 test/zdtm/static/zombie01.desc
--
Signed-off-by: Kirill Tkhai <ktkhai at virtuozzo.com>
More information about the CRIU
mailing list