* 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[parent not found: <20090619182114.GA27320-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>]
* 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
[parent not found: <4A3C1084.3080305-eQaUEPhvms7ENvBUuze7eA@public.gmane.org>]
* 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.