All of lore.kernel.org
 help / color / mirror / Atom feed
* c/r of pdeath
@ 2009-06-19 18:21 Serge E. Hallyn
       [not found] ` <20090619182114.GA27320-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
  0 siblings, 1 reply; 4+ messages in thread
From: Serge E. Hallyn @ 2009-06-19 18:21 UTC (permalink / raw)
  To: Oren Laadan; +Cc: Linux Containers

Hi Oren,

commit 9a45e26c0aabda6a94e2ac620befd8ee12a7363d adds
reset of pdeath_signal.  It does so unconditionally.  I
don't think that's safe.  Perhaps if pdeath_signal is
anything other than 0, it should only be restored if
the task is capable(CAP_KILL)?

-serge

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: c/r of pdeath
       [not found] ` <20090619182114.GA27320-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
@ 2009-06-19 22:26   ` Oren Laadan
       [not found]     ` <4A3C1084.3080305-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
  0 siblings, 1 reply; 4+ messages in thread
From: Oren Laadan @ 2009-06-19 22:26 UTC (permalink / raw)
  To: Serge E. Hallyn; +Cc: Linux Containers



Serge E. Hallyn wrote:
> Hi Oren,
> 
> commit 9a45e26c0aabda6a94e2ac620befd8ee12a7363d adds
> reset of pdeath_signal.  It does so unconditionally.  I
> don't think that's safe.  Perhaps if pdeath_signal is
> anything other than 0, it should only be restored if
> the task is capable(CAP_KILL)?

Hmmm... maybe I'm missing something here, but --

pdeath_signal indicates that the process wishes to receive
a signal, not to send one. It may change through prctl()
without requiring any capabilities from the caller. Finally
it is reset at fork/clone.

So at worse it will kill the specific task that holds it ?

--

As a side note - for a brief moment I worried that it may
break restart with zombies, if the to-be-zombie process has
a child that already restarted (including pdeath_signal) and
then exits, then the child will receive a signal unwillingly.

I then realized that it's safe as long as we restore parents
before their children. In turn this depends on the checkpoint
order, which indeed operates this way.

Otherwise we would have needed set this to all processes
after all zombies indeed have terminated - which means another
sync point at restart, or a sweep by coordinator on all tasks.

Oren.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: c/r of pdeath
       [not found]     ` <4A3C1084.3080305-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
@ 2009-06-19 22:35       ` Serge E. Hallyn
  2009-06-20  7:02       ` Oren Laadan
  1 sibling, 0 replies; 4+ messages in thread
From: Serge E. Hallyn @ 2009-06-19 22:35 UTC (permalink / raw)
  To: Oren Laadan; +Cc: Linux Containers

Quoting Oren Laadan (orenl-eQaUEPhvms7ENvBUuze7eA@public.gmane.org):
> 
> 
> Serge E. Hallyn wrote:
> > Hi Oren,
> > 
> > commit 9a45e26c0aabda6a94e2ac620befd8ee12a7363d adds
> > reset of pdeath_signal.  It does so unconditionally.  I
> > don't think that's safe.  Perhaps if pdeath_signal is
> > anything other than 0, it should only be restored if
> > the task is capable(CAP_KILL)?
> 
> Hmmm... maybe I'm missing something here, but --

Nope, you're not.  I was thinking wrong.

> pdeath_signal indicates that the process wishes to receive
> a signal, not to send one. It may change through prctl()
> without requiring any capabilities from the caller. Finally
> it is reset at fork/clone.
> 
> So at worse it will kill the specific task that holds it ?
> 
> --
> 
> As a side note - for a brief moment I worried that it may
> break restart with zombies, if the to-be-zombie process has
> a child that already restarted (including pdeath_signal) and
> then exits, then the child will receive a signal unwillingly.
> 
> I then realized that it's safe as long as we restore parents
> before their children. In turn this depends on the checkpoint
> order, which indeed operates this way.
> 
> Otherwise we would have needed set this to all processes
> after all zombies indeed have terminated - which means another
> sync point at restart, or a sweep by coordinator on all tasks.
> 
> Oren.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: c/r of pdeath
       [not found]     ` <4A3C1084.3080305-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
  2009-06-19 22:35       ` Serge E. Hallyn
@ 2009-06-20  7:02       ` Oren Laadan
  1 sibling, 0 replies; 4+ messages in thread
From: Oren Laadan @ 2009-06-20  7:02 UTC (permalink / raw)
  To: Serge E. Hallyn; +Cc: Linux Containers



Oren Laadan wrote:
> 
> Serge E. Hallyn wrote:
>> Hi Oren,
>>
>> commit 9a45e26c0aabda6a94e2ac620befd8ee12a7363d adds
>> reset of pdeath_signal.  It does so unconditionally.  I
>> don't think that's safe.  Perhaps if pdeath_signal is
>> anything other than 0, it should only be restored if
>> the task is capable(CAP_KILL)?
> 
> Hmmm... maybe I'm missing something here, but --
> 
> pdeath_signal indicates that the process wishes to receive
> a signal, not to send one. It may change through prctl()
> without requiring any capabilities from the caller. Finally
> it is reset at fork/clone.
> 
> So at worse it will kill the specific task that holds it ?
> 
> --
> 
> As a side note - for a brief moment I worried that it may
> break restart with zombies, if the to-be-zombie process has
> a child that already restarted (including pdeath_signal) and
> then exits, then the child will receive a signal unwillingly.
> 
> I then realized that it's safe as long as we restore parents
> before their children. In turn this depends on the checkpoint
> order, which indeed operates this way.

Bahh... silly me -
it's handled by commit efd1403a4606e0d6bd84299dab0b74792531c712
"c/r: introduce PF_RESTARTING, and skip notification on exit"

Oren.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2009-06-20  7:02 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-06-19 18:21 c/r of pdeath Serge E. Hallyn
     [not found] ` <20090619182114.GA27320-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2009-06-19 22:26   ` Oren Laadan
     [not found]     ` <4A3C1084.3080305-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>
2009-06-19 22:35       ` Serge E. Hallyn
2009-06-20  7:02       ` Oren Laadan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.