Hello.
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).
Sorry if i missed something, i have no machine to test
development kernel, so i can only speculate looking at
source.
Oleg.