restore: handle the case where zombies are reparented
For example, if a zombie has a helper that sets up its session id, the zombie will be reparented to the init task, which will then potentially get a SIGCHLD for a task which isn't its direct child zombie, which we didn't handle. Instead, let's find all the zombies for the init task, in case they get reparented this way. v2: only the zombies need to be recursively collected, helpers wait on their children before they exit and will never be reparented v4: the root task waits all zombies Reported-by:Tycho Andersen <tycho.andersen@canonical.com> Cc: Tycho Andersen <tycho.andersen@canonical.com> Signed-off-by:
Andrew Vagin <avagin@virtuozzo.com> Signed-off-by:
Pavel Emelyanov <xemul@virtuozzo.com>
Showing
Please
register
or
sign in
to comment