All of lore.kernel.org
 help / color / mirror / Atom feed
* Q: How complete is the pid namespace in mainline
@ 2007-10-26  5:17 Eric W. Biederman
       [not found] ` <m1bqam4fpg.fsf-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Eric W. Biederman @ 2007-10-26  5:17 UTC (permalink / raw)
  To: Pavel Emelyanov, Sukadev Bhattiprolu; +Cc: Linux Containers, Cedric Le Goater


Guys how complete do you fee the pid namespace support is that
has been merged into Linus's tree?

My impression until I started reading through code earlier today
was that the support was just about done except for a couple of
tricky details.

Eric

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

* Re: Q: How complete is the pid namespace in mainline
       [not found] ` <m1bqam4fpg.fsf-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
@ 2007-10-26  8:52   ` Cedric Le Goater
       [not found]     ` <4721AAD6.60501-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org>
  2007-10-26 17:17   ` sukadev-r/Jw6+rmf7HQT0dZR+AlfA
  1 sibling, 1 reply; 7+ messages in thread
From: Cedric Le Goater @ 2007-10-26  8:52 UTC (permalink / raw)
  To: Eric W. Biederman; +Cc: Linux Containers, Pavel Emelyanov

Eric W. Biederman wrote:
> Guys how complete do you fee the pid namespace support is that
> has been merged into Linus's tree?
> 
> My impression until I started reading through code earlier today
> was that the support was just about done except for a couple of
> tricky details.

Yes It looks sane.

Here's what I have in mind :

* there are some patches from suka that make sure the pid namespace init 
  is not getting abusively killed by one of this children 
* the pid cleanup is not complete 
	. locks
	. kthread (i should work soon on improving kthread to support 
          signals)

IMO, the proc mount shouldn't be under the pid namespace. we will 
need that sooner or later.


C.

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

* Re: Q: How complete is the pid namespace in mainline
       [not found]     ` <4721AAD6.60501-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org>
@ 2007-10-26  9:33       ` Eric W. Biederman
  0 siblings, 0 replies; 7+ messages in thread
From: Eric W. Biederman @ 2007-10-26  9:33 UTC (permalink / raw)
  To: Cedric Le Goater; +Cc: Linux Containers, Pavel Emelyanov

Cedric Le Goater <clg-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org> writes:

> Eric W. Biederman wrote:
>> Guys how complete do you fee the pid namespace support is that
>> has been merged into Linus's tree?
>> 
>> My impression until I started reading through code earlier today
>> was that the support was just about done except for a couple of
>> tricky details.
>
> Yes It looks sane.
>
> Here's what I have in mind :
>
> * there are some patches from suka that make sure the pid namespace init 
>   is not getting abusively killed by one of this children 
> * the pid cleanup is not complete 
> 	. locks
> 	. kthread (i should work soon on improving kthread to support 
>           signals)
>
> IMO, the proc mount shouldn't be under the pid namespace. we will 
> need that sooner or later.

I was hoping to get a larger list of unfixed issues.

Currently from my review I have generated about 25 bugfix patches.
Several of them in some fairly obvious places.

I think it is a good base to build on, but it feels to like we still
have a significant ways to go.

I think the assumption that we can use global pid numbers instead
of instead of struct pids is racy, and a serious maintenance problem.
It leads to silent breakage of routines like get_net_ns_by_pid,
and possibly a couple of other places.

I'm really not happy with pid_nr meaning a pid number in the
init_pid_ns and pid_vnr meaning a pid number meaning a pid in the
local pid namespace.  But that is just a matter of names so I
don't think it has caused any problems.   Short of making it
to easy to get a pid number in the &init_pid_ns. 

Eric

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

* Re: Q: How complete is the pid namespace in mainline
       [not found] ` <m1bqam4fpg.fsf-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
  2007-10-26  8:52   ` Cedric Le Goater
@ 2007-10-26 17:17   ` sukadev-r/Jw6+rmf7HQT0dZR+AlfA
       [not found]     ` <20071026171718.GB11942-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
  1 sibling, 1 reply; 7+ messages in thread
From: sukadev-r/Jw6+rmf7HQT0dZR+AlfA @ 2007-10-26 17:17 UTC (permalink / raw)
  To: Eric W. Biederman; +Cc: Linux Containers, Cedric Le Goater, Pavel Emelyanov

Eric W. Biederman [ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org] wrote:
| 
| Guys how complete do you fee the pid namespace support is that
| has been merged into Linus's tree?
| 
| My impression until I started reading through code earlier today
| was that the support was just about done except for a couple of
| tricky details.

The only thing that I know is pending is the issue of signalling
container-init. We have not been able to find a clean fix for it.

The problem now is that a process in a child namespace can terminate
its container-init and thereby the entire container. We have a 3-patch
set (Oleg's and mine) that kind of addresses this.  The scenario where
the patchset fails is :

	- the container-init has a blockable, fatal signal blocked 

	- a descendant of the container-init posts the fatal signal to
	  container-init.

	- container-init then unblocks the signal without ignoring or
	  handling the signal.

In this case again the container-init can be terminated. 

(by fatal I mean a signal whose default action is to terminate the process
SIGKILL is of couse not blockable and is not a problem)

This issue can be addressed in user-space by the container-init - which
should just ignore the fatal signal or setup a handler for it.

Dave had suggested we print a warning the first time a container-init forks()
without a handler for a fatal signal. I was planning on adding that as
patch 4 of the signal patch set and get some feedback.

Suka

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

* Re: Q: How complete is the pid namespace in mainline
       [not found]     ` <20071026171718.GB11942-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
@ 2007-10-26 18:17       ` Eric W. Biederman
       [not found]         ` <m1r6jh211e.fsf-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: Eric W. Biederman @ 2007-10-26 18:17 UTC (permalink / raw)
  To: sukadev-r/Jw6+rmf7HQT0dZR+AlfA
  Cc: Linux Containers, Cedric Le Goater, Pavel Emelyanov

sukadev-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org writes:
>
> Dave had suggested we print a warning the first time a container-init forks()
> without a handler for a fatal signal. I was planning on adding that as
> patch 4 of the signal patch set and get some feedback.

Yes.  How to cleanly handle signalling of container init is
a tricky one.  It does sound like you have made a reasonable start
there.

Suka it is a lot more then that.  How much more I'm not certain
of.  I suspect the only way to find the rest of the cases is
just go through the code with a fine tooth come and read and look.

So far doing that it has not at all hard for me to find either
bugs or places where the implementation can be improved.

Currently we have little things like kill(-1,...) signalling the
wrong set of processes, and a couple of proc bugs.

That autofs and coda out on the fringe don't quite do the right
thing in the presence of multiple pid namespaces isn't a big
surprise, little details like that are easy to overlook.

We of course still have the kthread issue where we can get
kernel threads trapped and we have kernel threads calling
kill_proc, keeping us from removing it.

There is all cap_set_all which isn't filtering by pid namespace.

Then we have the unix domain sockets that don't appear to do the
right thing when passing credentials across pid namespaces.  I
think we may have the same issues with signals as well.

Anyway I can find a lot issues like that without trying very
hard.  Which suggests to me that there are issues that I'm missing
that are out there as well.

So it appears there is lots of cleanup work to do.

Eric

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

* Re: Q: How complete is the pid namespace in mainline
       [not found]         ` <m1r6jh211e.fsf-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
@ 2007-10-26 21:29           ` sukadev-r/Jw6+rmf7HQT0dZR+AlfA
       [not found]             ` <20071026212959.GA15511-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
  0 siblings, 1 reply; 7+ messages in thread
From: sukadev-r/Jw6+rmf7HQT0dZR+AlfA @ 2007-10-26 21:29 UTC (permalink / raw)
  To: Eric W. Biederman; +Cc: Linux Containers, Cedric Le Goater, Pavel Emelyanov

Eric W. Biederman [ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org] wrote:
| sukadev-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org writes:
| >
| > Dave had suggested we print a warning the first time a container-init forks()
| > without a handler for a fatal signal. I was planning on adding that as
| > patch 4 of the signal patch set and get some feedback.
| 
| Yes.  How to cleanly handle signalling of container init is
| a tricky one.  It does sound like you have made a reasonable start
| there.
| 
| Suka it is a lot more then that.  How much more I'm not certain
| of.  I suspect the only way to find the rest of the cases is
| just go through the code with a fine tooth come and read and look.

I agree. I did not mean to ignore the kthread conversions and was only
referring to the core pid namespace clone stuff.

| 
| So far doing that it has not at all hard for me to find either
| bugs or places where the implementation can be improved.
| 
| Currently we have little things like kill(-1,...) signalling the
| wrong set of processes, and a couple of proc bugs.

I just realized the fix for this is in the signal patchset I was
referring to.

https://lists.linux-foundation.org/pipermail/containers/2007-August/006987.html

I notice that you have sent a patch for the kill -1.

The proc_mnt bug Linus found seems to have slipped through when
merging Pavel's and my patches.

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

* Re: Q: How complete is the pid namespace in mainline
       [not found]             ` <20071026212959.GA15511-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
@ 2007-10-26 23:09               ` Eric W. Biederman
  0 siblings, 0 replies; 7+ messages in thread
From: Eric W. Biederman @ 2007-10-26 23:09 UTC (permalink / raw)
  To: sukadev-r/Jw6+rmf7HQT0dZR+AlfA
  Cc: Linux Containers, Cedric Le Goater, Pavel Emelyanov

sukadev-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org writes:

> Eric W. Biederman [ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org] wrote:
> | sukadev-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org writes:
> | >
> | > Dave had suggested we print a warning the first time a container-init
> forks()
> | > without a handler for a fatal signal. I was planning on adding that as
> | > patch 4 of the signal patch set and get some feedback.
> | 
> | Yes.  How to cleanly handle signalling of container init is
> | a tricky one.  It does sound like you have made a reasonable start
> | there.
> | 
> | Suka it is a lot more then that.  How much more I'm not certain
> | of.  I suspect the only way to find the rest of the cases is
> | just go through the code with a fine tooth come and read and look.
>
> I agree. I did not mean to ignore the kthread conversions and was only
> referring to the core pid namespace clone stuff.

Sure, and that make sense.

> | So far doing that it has not at all hard for me to find either
> | bugs or places where the implementation can be improved.
> | 
> | Currently we have little things like kill(-1,...) signalling the
> | wrong set of processes, and a couple of proc bugs.
>
> I just realized the fix for this is in the signal patchset I was
> referring to.
>
> https://lists.linux-foundation.org/pipermail/containers/2007-August/006987.html
>
> I notice that you have sent a patch for the kill -1.

Yes. I'm trying to get out as many simple little bug fixes
as I can.

Sorry for missing the fact you guys had generated some patches
to address this.  Still I think mine is a little more comprehensive
and shorter ;)

That bug is on my list of really nasty bugs I want to avoid.

> The proc_mnt bug Linus found seems to have slipped through when
> merging Pavel's and my patches.

I really don't mind a handful of little bugs, it would be
surprising if something hadn't slipped through at this point.

As long as everyone is aware that it is going to take a bit
to find everything and stabilizing it all and everyone keeps
looking we should be fine.

Oh.  Do you know if there was a good reason for forcing
the tty, session, and process group of a the first process
in a pid namespace?

Eric

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

end of thread, other threads:[~2007-10-26 23:09 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-26  5:17 Q: How complete is the pid namespace in mainline Eric W. Biederman
     [not found] ` <m1bqam4fpg.fsf-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
2007-10-26  8:52   ` Cedric Le Goater
     [not found]     ` <4721AAD6.60501-NmTC/0ZBporQT0dZR+AlfA@public.gmane.org>
2007-10-26  9:33       ` Eric W. Biederman
2007-10-26 17:17   ` sukadev-r/Jw6+rmf7HQT0dZR+AlfA
     [not found]     ` <20071026171718.GB11942-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-10-26 18:17       ` Eric W. Biederman
     [not found]         ` <m1r6jh211e.fsf-T1Yj925okcoyDheHMi7gv2pdwda3JcWeAL8bYrjMMd8@public.gmane.org>
2007-10-26 21:29           ` sukadev-r/Jw6+rmf7HQT0dZR+AlfA
     [not found]             ` <20071026212959.GA15511-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-10-26 23:09               ` Eric W. Biederman

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.