2002-10-12 11:24:22

by Oleg Nesterov

[permalink] [raw]
Subject: BUG: [RESEND] de_thread()

Hello.

On Thu, 10 Oct 2002 Oleg Nesterov wrote:
>
> Suppose process P in thread group was cloned _without_
> CLONE_DETACHED flag. Then another thread, group_leader
> for simplicity, does exec and calls de_thread(). It kills
> P via _broadcast_thread_group(). While doing do_exit(),
> P skips release_task(), because its exit_signal != -1,
> and becomes TASK_ZOMBIE.
>
> Then leader calls schedule() with TASK_UNINTERRUPTIBLE
> in while(oldsig->count > 1) {...} and sleeps forever,
> because nobody can do wake_up_process(sig->group_exit_task).

Oleg.