[Devel] Re: [RFC][PATCH 6/6][v3] Protect cinit from blocked fatal signals
Oleg Nesterov
oleg at redhat.com
Mon Dec 22 16:03:56 PST 2008
On 12/22, Sukadev Bhattiprolu wrote:
>
> Oleg Nesterov [oleg at redhat.com] wrote:
> | > @@ -1907,9 +1943,10 @@ relock:
> | >
> | > /*
> | > * Global init gets no signals it doesn't want.
> | > + * Container-init gets no signals it doesn't want from same
> | > + * container.
> | > */
> | > - if (unlikely(signal->flags & SIGNAL_UNKILLABLE) &&
> | > - !signal_group_exit(signal))
> | > + if (sig_unkillable(signal, signr) && !signal_group_exit(signal))
> | > continue;
> |
> | Again, I do not understand why do we need SIGNAL_UNKILLABLE_FROM_NS.
> |
> | I thought about the change in get_signal_to_deliver() during the
> | previous discussion, and I think what we need is:
> |
> | if (unlikely(signal->flags & SIGNAL_UNKILLABLE) &&
> | !sig_kernel_only(sig))
> | continue;
> |
> | and this was yet another reason for "protect init from unwanted signals more".
>
> I was trying to avoid the clearing of the SIGNAL_UNKILLABLE in
> send_signal() that we had last time.
Well, my plan was to simplify the first series of patches as much
as possible, then I thought we can change get_signal_to_deliver().
But now I tend to agree, we should not clear SIGNAL_UNKILLABLE when
we send the signal, and we should pass same_ns/from_parent_ns to
prepare_signal() from the start. This way is more "clean".
> But yes, you are right. I even had a BUG_ON() to confirm SIGKILL/SIGSTOP
> will never happen for global-init :-). If so, SIGKLL/SIGSTOP to an init
> can come only from parent ns.
>
> So, yes, we can drop this flag.
Great!
Oleg.
_______________________________________________
Containers mailing list
Containers at lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
More information about the Devel
mailing list