All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] Send a SIGCHLD to the init's pid namespace parent when reboot
@ 2011-08-11 20:23 Daniel Lezcano
       [not found] ` <1313094241-3674-1-git-send-email-daniel.lezcano-GANU6spQydw@public.gmane.org>
                   ` (3 more replies)
  0 siblings, 4 replies; 63+ messages in thread
From: Daniel Lezcano @ 2011-08-11 20:23 UTC (permalink / raw)
  To: akpm; +Cc: oleg, bonbons, containers, linux-kernel, serge

From: Daniel Lezcano <dlezcano@fr.ibm.com>

In the case of a VPS, when we shutdown/halt/reboot the container, the
reboot utility will invoke the sys_reboot syscall which has the bad
effect to reboot the host. The way to fix that is to drop the
CAP_SYS_REBOOT capability in the container.

In this case, the container shutdowns correctly but, at the end, the
init process is waiting indefinitely and we have the containers stuck
with one process (the init process).

In order to fix that, we used a hypervisor process, parent of the
container's init process, watching for the container's utmp file and
detecting when the runlevel changes. When this runlevel change is
detected we wait for the container to have one process left and then we
kill the container's init.

That works well if we modify the distro configuration files, we make
/var/run to not be a tmpfs and we remove all the files inside this
directory when the container boots. *But* as soon as we upgrade the
container distro, all the tweaks are lost. So this method works but at
the cost of tweaking the containers configuration files again and again,
each time there is an update, which is not tolerable in a production
environment.

This patchset solves the problem by send a SIGCHLD signal to the process
parent of the init process of the child pid namespace. By this way, we know
when a pid namespace wanted to reboot/halt/shutdown and we can take advantage
of that to kill, restart or suspend the container.

Daniel Lezcano (2):
  add SA_CLDREBOOT flag
  Notify container-init parent a 'reboot' occured

 arch/alpha/include/asm/signal.h   |    2 +
 arch/arm/include/asm/signal.h     |    2 +
 arch/avr32/include/asm/signal.h   |    2 +
 arch/cris/include/asm/signal.h    |    2 +
 arch/h8300/include/asm/signal.h   |    2 +
 arch/ia64/include/asm/signal.h    |    2 +
 arch/m32r/include/asm/signal.h    |    2 +
 arch/m68k/include/asm/signal.h    |    2 +
 arch/mips/include/asm/signal.h    |    2 +
 arch/mn10300/include/asm/signal.h |    2 +
 arch/parisc/include/asm/signal.h  |    2 +
 arch/powerpc/include/asm/signal.h |    2 +
 arch/s390/include/asm/signal.h    |    2 +
 arch/sparc/include/asm/signal.h   |    2 +-
 arch/x86/include/asm/signal.h     |    2 +
 arch/xtensa/include/asm/signal.h  |    2 +
 include/asm-generic/siginfo.h     |    3 +-
 include/asm-generic/signal.h      |    2 +
 include/linux/sched.h             |    1 +
 kernel/signal.c                   |   40 +++++++++++++++++++++++++++++++++++++
 kernel/sys.c                      |   20 ++++++++++++++++-
 21 files changed, 94 insertions(+), 4 deletions(-)

-- 
1.7.4.1


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

end of thread, other threads:[~2011-08-25 15:41 UTC | newest]

Thread overview: 63+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-08-11 20:23 [PATCH 0/2] Send a SIGCHLD to the init's pid namespace parent when reboot Daniel Lezcano
     [not found] ` <1313094241-3674-1-git-send-email-daniel.lezcano-GANU6spQydw@public.gmane.org>
2011-08-11 20:24   ` [PATCH 1/2] add SA_CLDREBOOT flag Daniel Lezcano
2011-08-11 20:24   ` [PATCH 2/2] Notify container-init parent a 'reboot' occured Daniel Lezcano
2011-08-14 16:17   ` [PATCH 0/2] Send a SIGCHLD to the init's pid namespace parent when reboot Oleg Nesterov
2011-08-11 20:24 ` [PATCH 1/2] add SA_CLDREBOOT flag Daniel Lezcano
     [not found]   ` <1313094241-3674-2-git-send-email-daniel.lezcano-GANU6spQydw@public.gmane.org>
2011-08-14 16:15     ` Oleg Nesterov
2011-08-14 16:15   ` Oleg Nesterov
     [not found]     ` <20110814161532.GA30846-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-08-14 16:36       ` Bruno Prémont
2011-08-14 16:36     ` Bruno Prémont
2011-08-14 17:10       ` Oleg Nesterov
     [not found]       ` <20110814183611.05937c96-hY15tx4IgV39zxVx7UNMDg@public.gmane.org>
2011-08-14 17:10         ` Oleg Nesterov
2011-08-11 20:24 ` [PATCH 2/2] Notify container-init parent a 'reboot' occured Daniel Lezcano
2011-08-11 21:09   ` Serge Hallyn
2011-08-11 21:30     ` Daniel Lezcano
2011-08-11 21:30     ` Daniel Lezcano
     [not found]       ` <4E444A04.3070403-GANU6spQydw@public.gmane.org>
2011-08-11 21:50         ` Serge Hallyn
2011-08-12 16:29         ` Serge Hallyn
2011-08-12 16:29           ` Serge Hallyn
2011-08-12 20:42           ` Daniel Lezcano
     [not found]             ` <4E45904F.60904-GANU6spQydw@public.gmane.org>
2011-08-12 21:13               ` Serge Hallyn
2011-08-12 21:13             ` Serge Hallyn
2011-08-12 20:42           ` Daniel Lezcano
2011-08-11 21:50       ` Serge Hallyn
     [not found]   ` <1313094241-3674-3-git-send-email-daniel.lezcano-GANU6spQydw@public.gmane.org>
2011-08-11 21:09     ` Serge Hallyn
2011-08-13  0:19     ` Matt Helsley
2011-08-14 16:01     ` Oleg Nesterov
2011-08-13  0:19   ` Matt Helsley
2011-08-13 14:41     ` Daniel Lezcano
     [not found]     ` <20110813001959.GB5777-52DBMbEzqgQ/wnmkkaCWp/UQ3DHhIser@public.gmane.org>
2011-08-13 14:41       ` Daniel Lezcano
2011-08-14 16:01   ` Oleg Nesterov
2011-08-14 16:17 ` [PATCH 0/2] Send a SIGCHLD to the init's pid namespace parent when reboot Oleg Nesterov
2011-08-14 21:36   ` Serge E. Hallyn
2011-08-15 14:47     ` Oleg Nesterov
2011-08-15 17:39       ` Serge E. Hallyn
2011-08-15 17:50         ` Daniel Lezcano
     [not found]         ` <20110815173940.GA19620-A9i7LUbDfNHQT0dZR+AlfA@public.gmane.org>
2011-08-15 17:50           ` Daniel Lezcano
     [not found]       ` <20110815144744.GA9660-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-08-15 17:39         ` Serge E. Hallyn
2011-08-18 23:46         ` Daniel Lezcano
2011-08-18 23:46       ` Daniel Lezcano
2011-08-19 15:24         ` Oleg Nesterov
     [not found]           ` <20110819152416.GA17034-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-08-22 12:28             ` Daniel Lezcano
2011-08-22 12:28           ` Daniel Lezcano
2011-08-22 15:44             ` Oleg Nesterov
     [not found]               ` <20110822154448.GA8527-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-08-22 16:31                 ` Bruno Prémont
2011-08-22 16:31               ` Bruno Prémont
     [not found]                 ` <20110822183134.10390b46-hY15tx4IgV39zxVx7UNMDg@public.gmane.org>
2011-08-22 17:39                   ` Oleg Nesterov
2011-08-22 17:39                 ` Oleg Nesterov
     [not found]                   ` <20110822173949.GA13242-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-08-22 19:17                     ` Bruno Prémont
2011-08-22 19:17                   ` Bruno Prémont
2011-08-23 13:33                     ` Oleg Nesterov
2011-08-23 14:09                       ` Greg Kurz
     [not found]                         ` <1314108566.3465.29.camel-GiB8zCg7hOfDOqzlkpFKJg@public.gmane.org>
2011-08-23 14:29                           ` Oleg Nesterov
2011-08-23 14:29                         ` Oleg Nesterov
     [not found]                           ` <20110823142914.GA22593-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-08-24 19:44                             ` Bruno Prémont
2011-08-24 19:44                           ` Bruno Prémont
2011-08-25 15:37                             ` Oleg Nesterov
     [not found]                             ` <20110824214418.474b24c6-hY15tx4IgV39zxVx7UNMDg@public.gmane.org>
2011-08-25 15:37                               ` Oleg Nesterov
     [not found]                       ` <20110823133302.GA19582-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-08-23 14:09                         ` Greg Kurz
     [not found]                     ` <20110822211716.7c141d5c-hY15tx4IgV39zxVx7UNMDg@public.gmane.org>
2011-08-23 13:33                       ` Oleg Nesterov
     [not found]             ` <4E524B73.3050704-GANU6spQydw@public.gmane.org>
2011-08-22 15:44               ` Oleg Nesterov
     [not found]         ` <4E4DA461.8030006-GANU6spQydw@public.gmane.org>
2011-08-19 15:24           ` Oleg Nesterov
     [not found]     ` <20110814213642.GB13799-A9i7LUbDfNHQT0dZR+AlfA@public.gmane.org>
2011-08-15 14:47       ` Oleg Nesterov
     [not found]   ` <20110814161707.GB30846-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2011-08-14 21:36     ` Serge E. Hallyn

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.