Re: [RFC][PATCH 4/5] Protect cinit from fatal signals

Sukadev Bhattiprolu
2008-12-04T18:58:56Z

Bastian Blank [bastian@waldi.eu.org] wrote:
| > Secondly, a poorly written container-inits can take the entire container down,
| > So we expect that container-inits to handle/ignore all signals rather than
| > SIG_DFL them. Current global inits do that today and container-inits should
| > too. It does not look like an unreasonable requirement.
|
| So you intend to workaround tools which are used as container-init but
| does not qualify for this work. Why?

Sorry, but I don't understand the "does not qualify for this work" part.
Can you please rephrase ?

|
| > So the basic requirements are:
| >
| > - container-init receives/processes all signals from ancestor namespace.
| > - container-init ignores fatal signals from own namespace.
| >
| > We are simplifying the first to say that:
| >
| > - parent-ns must have a way to terminate container-init
| > - cinit will ignore SIG_DFL signals that may terminate cinit even if
| > they come from parent ns
|
| This is no simplification. This are more constraints.

Yes cinit ignoring SIG_DFL exit signals from parent-ns is a constraint.
So if we run say sshd as container-init, we can't use SIGINT to
terminate it, but need SIGKILL

The question is whether this constraint makes any serious/real cinits
unusable ?

The behavior at present is that cinits can be terminated from within
and cinits cannot do anything in user-space. With this incremental
step at least user space has an option of ignoring such signals.

Sukadev