[PATCH v2 1/2] pids: fix cleanup of orphaned pids_task1 children
Andrea Cervesato <[email protected]>
| Newsgroups | gmane.linux.ltp |
|---|---|
| Message-ID | <[email protected]> |
From: Andrea Cervesato <andrea.cervesato-IBi9RG/[email protected]> pids_task1 forks a child that calls pause(), then the parent exits. The orphaned child remains in the cgroup but gets reparented to init, so it is not a child of the test shell. stop_pids_tasks_path() reads cgroup.procs which includes this orphan. kill -9 succeeds but wait fails with 'not a child of this shell'. Using ROD for kill also unnecessarily aborts if the process is already dead. Fix by suppressing errors from both kill and wait, and add killall for pids_task1 in cleanup() to catch any remaining orphans. Reviewed-by: Li Wang <[email protected]> Signed-off-by: Andrea Cervesato <andrea.cervesato-IBi9RG/[email protected]> --- testcases/kernel/controllers/pids/pids.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/testcases/kernel/controllers/pids/pids.sh b/testcases/kernel/controllers/pids/pids.sh index 26a0c6a221ea63e683016ebfea33f2744800aaea..dd27b5616f0c4b55c625ca57efa2507325949b07 100755 --- a/testcases/kernel/controllers/pids/pids.sh +++ b/testcases/kernel/controllers/pids/pids.sh @@ -35,6 +35,7 @@ EOF cleanup() { killall -9 pids_task2 >/dev/null 2>&1 + killall -9 pids_task1 >/dev/null 2>&1 cgroup_cleanup } @@ -79,8 +80,8 @@ stop_pids_tasks_path() path=$1 for i in $(cat "$path/$task_list"); do - ROD kill -9 $i - wait $i + kill -9 $i 2>/dev/null + wait $i 2>/dev/null done } -- 2.51.0 -- Mailing list info: https://lists.linux.it/listinfo/ltp