[Devel] [PATCH rh7] signal/ve: allow to send signal from another ve namespace
Stanislav Kinsburskiу
skinsbursky at odin.com
Thu Nov 12 09:07:39 PST 2015
12 нояб. 2015 г. 17:51 пользователь Andrey Wagin <avagin at gmail.com> написал:
>
> 2015-11-12 19:41 GMT+03:00 Stanislav Kinsburskiy <skinsbursky at odin.com>:
> >
> >
> > 12.11.2015 17:11, Andrey Ryabinin пишет:
> >
> >>
> >> On 11/12/2015 07:08 PM, Stanislav Kinsburskiy wrote:
> >>>
> >>>
> >>> 12.11.2015 16:47, Andrey Ryabinin пишет:
> >>>>
> >>>> On 11/12/2015 05:59 PM, Stanislav Kinsburskiy wrote:
> >>>>>
> >>>>> 12.11.2015 15:53, Andrey Wagin пишет:
> >>>>>>
> >>>>>> 2015-11-12 17:46 GMT+03:00 Stanislav Kinsburskiу
> >>>>>> <skinsbursky at odin.com>:
> >>>>>>>
> >>>>>>> 12 нояб. 2015 г. 15:14 пользователь Andrey Ryabinin
> >>>>>>> <aryabinin at virtuozzo.com> написал:
> >>>>>>>>
> >>>>>>>> CRIU sends SIGKILL to container's init process as a part of
> >>>>>>>> cleanup process if restoring failed.
> >>>>>>>> CRIU does this from a different ve, which is currently not allowed
> >>>>>>>> without any apparent reason.
> >>>>>>>
> >>>>>>> The reason looks very clear to me: improve namespaces isolation.
> >>>>>>> It espesially applies to killing child reaper of another ve.
> >>>>>>> You throwed away this check, and now it's possible to kill one
> >>>>>>> container from another one.
> >>>>>>> Or I'm missing somethig?
> >>>>>>
> >>>>>> Each container has its own pidns, so you can't kill anyone who isn't
> >>>>>> in this pidns.
> >>>>>
> >>>>> So how CRIU sends kill signal from one ve to another then?
> >>>>>
> >>>> AFAIK, CRIU creates it's own ve namespace, but it still operates in root
> >>>> pid namespace.
> >>>
> >>> Hmm, ok.
> >>> Then nothing against this patch.
> >>> The only thing I'm curios: for how long we have this patch? Pid
> >>> namespaces are used in OpenVZ for at least last 6 years (probably more).
> >>> When this checks appeared? Maybe there was another reason, which is just
> >>> not obvious so far?
> >>
> >> I suspect that it was just blindly ported from 2.6:
> >>
> >> commit fd3207d650434ac82f2c897cadd5607e67f2c274
> >> Author: Kirill Tkhai <ktkhai at parallels.com>
> >> Date: Fri Oct 10 19:35:02 2014 +0400
> >>
> >> ve: Ignore signals from wrong ve
> >> Port sig_ve_ignored().
> >> This is a part of 74-diff-ve-mix-combined.
> >> https://jira.sw.ru/browse/PSBM-17903
> >> Signed-off-by: Kirill Tkhai <ktkhai at parallels.com>
> >
> >
> > That's for sure.
> > My question was about origins of this patch.
> > Thanks to Vasiliy:
> >
> > RCS file:
> > /cvs/Virtuozzo/kernel-patches/2.6.18-rhel5/diff-ve-init-signals-20070514,v
> > Working file: diff-ve-init-signals-20070514
> > head: 1.1
> > branch:
> > locks: strict
> > access list:
> > symbolic names:
> > keyword substitution: o
> > total revisions: 1; selected revisions: 1
> > description:
> > ----------------------------
> > revision 1.1
> > date: 2007/05/18 13:24:17; author: dev; state: Exp;
> > Patch from Denis Lunev <den at openvz.org>
> > [VE] VE init signal delivery reworked to be similar to host
> > Prevent VE init from receiving unexpected signals sent from VE
> > including fatal ones. Signals sent from VE0 are still allowed,
> > e.g. for fast VE stop.
> > Fix for sys_reboot called from VE to force VE death
> > (SIGKILL is sent in the context of VE).
> >
> > http://bugzilla.openvz.org/show_bug.cgi?id=533
> >
> > Are you sure, that you are not braking the logic, this patch introduced in
> > past?
>
>
>
> [root at fc22-vm ~]# unshare --fork -p
> [root at fc22-vm ~]# kill -9 1
> [root at fc22-vm ~]# kill -9 1
> [root at fc22-vm ~]# kill -9 1
> [root at fc22-vm ~]# kill -9 1
> [root at fc22-vm ~]# kill -USR1 1
> [root at fc22-vm ~]# kill -USR1 1
> [root at fc22-vm ~]#
>
> >
Ok then. Probably, this patch should be ported to rhel6 as well.
More information about the Devel
mailing list