[Devel] Re: [PATCH 00/10] Containers(V10): Generic Process Containers

Serge E. Hallyn serue at us.ibm.com
Mon Jun 4 13:51:06 PDT 2007


Quoting Paul Menage (menage at google.com):
> On 6/4/07, Serge E. Hallyn <serue at us.ibm.com> wrote:
> >
> >2. I can't delete containers because of the files they contain, and
> >am not allowed to delete those files by hand.
> >
> 
> You should be able to delete a container with rmdir as long as it's
> not in use - its control files will get cleaned up automatically.
> 
> If you're getting an EBUSY error that means that either there are
> still tasks running in the container (look in the "tasks" file) or
> else there's a reference counting bug somewhere.
> 
> Can you post an example to reproduce the problem?

here is an excerpt:

[root at linuz11 root]# mount -t container -ocpuset cpuset /containers/
[root at linuz11 root]# ls /containers/
cpu_exclusive   memory_pressure          mems               tasks
cpus            memory_pressure_enabled  notify_on_release
mem_exclusive   memory_spread_page       releasable
memory_migrate  memory_spread_slab       release_agent
[root at linuz11 root]# mkdir /containers/1
[root at linuz11 root]# echo 0 > /containers/1/mems
[root at linuz11 root]# echo 0 > /containers/1/cpus
[root at linuz11 root]# sh
sh-2.05b# echo $$ > /containers/1/tasks
sh-2.05b# cat /containers/1/tasks 
4325
4326
sh-2.05b# exit
[root at linuz11 root]# ls /containers/1/tasks 
/containers/1/tasks
[root at linuz11 root]# rm -rf /containers/1 
rm: cannot remove `/containers/1/memory_spread_slab': Operation not
permitted
rm: cannot remove `/containers/1/memory_spread_page': Operation not
permitted
rm: cannot remove `/containers/1/memory_pressure': Operation not
permitted
rm: cannot remove `/containers/1/memory_migrate': Operation not
permitted
rm: cannot remove `/containers/1/mem_exclusive': Operation not permitted
rm: cannot remove `/containers/1/cpu_exclusive': Operation not permitted
rm: cannot remove `/containers/1/mems': Operation not permitted
rm: cannot remove `/containers/1/cpus': Operation not permitted
rm: cannot remove `/containers/1/releasable': Operation not permitted
rm: cannot remove `/containers/1/notify_on_release': Operation not
permitted
rm: cannot remove `/containers/1/tasks': Operation not permitted

Ah, I see the second time I typed 'ls /containers/1/tasks' instead of
cat.  When I then used cat, the file was empty, and I got an oops just
like Pavel reported.  I bet if I solve the problem he reported, then I
solve my problem  :)

thanks,
-serge




More information about the Devel mailing list