[CRIU] [PATCH v2] seize: do not try to detach killed tasks

Dmitry Safonov dsafonov at odin.com
Tue Dec 15 04:15:02 PST 2015


unseize_task_and_threads sends SIGKILL in unseize_task under condition
(st == TASK_DEAD). Which obviously kills task.

Move freezer_detach after pstree_wait to detach only from alive tasks
to get rid of the following errors:
	(00.242163) Error (seize.c:223): Unable to detach from 23064
	: No such process
	(00.242177) Error (seize.c:223): Unable to detach from 23065
	: No such process

Signed-off-by: Dmitry Safonov <dsafonov at odin.com>
---
 seize.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/seize.c b/seize.c
index c0f8d7b..2c8e4ad 100644
--- a/seize.c
+++ b/seize.c
@@ -447,10 +447,10 @@ void pstree_switch_state(struct pstree_item *root_item, int st)
 	for_each_pstree_item(item)
 		unseize_task_and_threads(item, st);
 
-	freezer_detach();
-
 	if (st == TASK_DEAD)
 		pstree_wait(root_item);
+
+	freezer_detach();
 }
 
 static pid_t item_ppid(const struct pstree_item *item)
-- 
2.6.3



More information about the CRIU mailing list