lkml.org 
[lkml]   [2005]   [Oct]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [BUG?] 2.6.x (2.6.13) - new signals not being delivered to a terminating (PF_EXITING) process.
Kilau, Scott wrote:
>
> signal_pending() never does, no matter how many signals I send it.
> (Even sending it multiple kill -9's)
>
> ...
>
> However, I see the signals climb, when I print out the values of
> current->signal->shared_pending.list.next and
> current->signal->shared_pending.list.prev
>
> Its like those values and the signal_pending macro aren't in "synch"
> Anymore, once the process has gone into the PF_EXITING state.
> (It works fine when the process is not in that state)

Yes, __group_complete_signal() is called after the signal has been added to
the ->shared_pending. But it does not signal_wake_up()s process, because of
this check in wants_signal():

if (p->flags & PF_EXITING)
return 0;

The intent was to find another thread in the thread group which can accept
this signal. May be we need special check in __group_complete_signal() under
"else if (thread_group_empty(p))".

You still can kill this process via tkill, though.

Oleg.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-10-15 18:05    [W:0.038 / U:25.952 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site