Re: [vserver] util-vserver and _namespaceCleanup bug (and patch)

From: Xavier Montagutelli <xavier.montagutelli_at_unilim.fr>
Date: Thu 25 Feb 2010 - 12:00:24 GMT
Message-Id: <201002251300.25058.xavier.montagutelli@unilim.fr>

On Thursday 25 February 2010 10:44:32 Herbert Poetzl wrote:
> On Wed, Feb 24, 2010 at 05:39:21PM +0100, Xavier Montagutelli wrote:
> > Hello,
> >
> > I encountered a (big) problem because the namespace cleanup
> > functionality doesn't work always well.
>
> kernel and util-vserver version?

Kernel : 2.6.32.8-vs2.3.0.36.29.1

(but the problem is not in the kernel code, just in the userspace code. This
is an issue for Enrico or Hozac ?)

bash version : 3.2.25(1) (from Red Hat 5.3)

util-vserver : 0.30.216-pre2841

I have not tested the last one, but a quick look at the code of 0.30.216-
pre2880 shows no difference for the function _namespaceCleanup.

>
> thanks,
> Herbert
>
> > Test case :
> >
> > Start a Vserver named "webmail", vdir located under the mount point
> > "/vservers/webmail"
> >
> > The start another VServer "web", vdir mounted under "/vservers/web"
> > (same beginning ...)
> >
> > The first mount point is not umounted in the namespace of the second
> > VServer.
> >
> > (vnamespace -e <xid_of_web> cat /proc/mounts)
> >
> > From what I understand, the problem is located at the _namespaceCleanup
> > function, the test for not umounting a sub-mount is not correct.
> >
> > One solution, verify the path with a trailing "/"
> >
> > --- util-vserver/vserver.functions.orig 2010-02-24 17:29:29.000000000
> > +0100 +++ util-vserver/vserver.functions 2010-02-24
> > 17:34:13.000000000 +0100 @@ -1378,7 +1378,8 @@
> > while read -r dev path opts; do
> > test -n "$path" || continue
> > for i in "$root" /dev /proc; do
> > - test "${path#$i}" != "$path" && continue 2
> > + path_dir="${path}/"
> > + test "${path_dir#${i}/}" != "${path_dir}" && continue 2
> > done
> > for i in "${list[@]}" /; do
> > test "$path" = "$i" && continue 2
>

-- 
Xavier Montagutelli                      Tel : +33 (0)5 55 45 77 20
Service Commun Informatique              Fax : +33 (0)5 55 45 75 95
Universite de Limoges
123, avenue Albert Thomas
87060 Limoges cedex
Received on Thu Feb 25 12:00:44 2010
[Next/Previous Months] [Main vserver Project Homepage] [Howto Subscribe/Unsubscribe] [Paul Sladen's vserver stuff]
Generated on Thu 25 Feb 2010 - 12:00:45 GMT by hypermail 2.1.8