Hello Developers,
using Gentoo's lxc-0.8.0_rc1-r4 with a Kernel gentoo-sources-3.3.5 I
observe the following issue concerning the cgroupfs:
For reasons of compatibility I have still mounted the controllers of the
cgroupfs at a single mountpoint /cgroup/ .
# grep cgroup /etc/fstab:
cgroup /cgroup cgroup defaults
0 0
After a bootstrap of the host this shows up as
# grep cgroup /proc/mounts
cgroup /cgroup cgroup
rw,relatime,blkio,freezer,devices,memory,cpuacct,cpu,cpuset 0 0
If I now try to start the first container, it will fail (for *any* previous
well working container). The important messages in the log are:
lxc-start 1340194612.650 INFO lxc_cgroup - [1] found cgroup mounted
at '/cgroup',opts='rw,relatime,blkio,freezer,devices,memory,cpuacct,cpu,cpuset'
lxc-start 1340194612.650 DEBUG lxc_cgroup - get_init_cgroup: found
init cgroup for subsys (null) at /
lxc-start 1340194612.650 DEBUG lxc_cgroup - cgroup /cgroup has flags
0x0
lxc-start 1340194612.682 INFO lxc_cgroup - created cgroup
'/cgroup//lxc/testcat0'
lxc-start 1340194612.682 DEBUG lxc_cgroup - checking '/proc/bus/usb'
(usbfs)
lxc-start 1340194612.683 DEBUG lxc_conf - move '(null)' to '10591'
lxc-start 1340194612.762 DEBUG lxc_start - Dropped cap_sys_boot
lxc-start 1340194612.762 INFO lxc_conf - '' hostname has been setup
lxc-start 1340194612.792 DEBUG lxc_conf - mac address
'00:50:C2:45:3C:14' on 'eth0' has been setup
lxc-start 1340194612.795 DEBUG lxc_conf - 'eth0' has been setup
lxc-start 1340194612.795 INFO lxc_conf - network has been setup
lxc-start 1340194612.795 DEBUG lxc_conf - mounted
'/etc/lxc/testcat0/rootfs' on '/usr/lib/lxc/rootfs'
[...]
lxc-start 1340194612.797 INFO lxc_conf - mount points have been setup
lxc-start 1340194612.798 ERROR lxc_conf - No such file or directory -
failed to mount '/cgroup/testcat0' on '/usr/lib/lxc/rootfs/cgroup' <<-- SHOULD
BE /cgroup/lxc/testcat0 HERE ???
lxc-start 1340194612.798 ERROR lxc_conf - failed to setup the mount
entries for 'testcat0'
lxc-start 1340194612.798 ERROR lxc_start - failed to setup the
container
lxc-start 1340194612.798 ERROR lxc_sync - invalid sequence number 1.
expected 2
lxc-start 1340194612.799 ERROR lxc_start - failed to spawn 'testcat0'
lxc-start 1340194612.799 DEBUG lxc_cgroup - get_init_cgroup: found
init cgroup for subsys (null) at /
lxc-start 1340194612.799 DEBUG lxc_cgroup - destroying
/cgroup//lxc/testcat0
lxc-start 1340194612.858 DEBUG lxc_cgroup - '/cgroup//lxc/testcat0'
unlinked
After this first try, there is the new lxc super directory /cgroups/lxc and
the mount options of the cgroupfs now show an additional clone_childern
cgroup /cgroup cgroup
rw,relatime,blkio,freezer,devices,memory,cpuacct,cpu,cpuset,clone_children 0 0
respectively /cgroup/cgroup.clone_children is 1.
As from now, starting of the containers will work:
lxc-start 1340194763.755 INFO lxc_cgroup - [1] found cgroup mounted
at
'/cgroup',opts='rw,relatime,blkio,freezer,devices,memory,cpuacct,cpu,cpuset,clone_children'
lxc-start 1340194763.755 DEBUG lxc_cgroup - get_init_cgroup: found
init cgroup for subsys (null) at /
lxc-start 1340194763.755 DEBUG lxc_cgroup - cgroup /cgroup has flags
0x0
lxc-start 1340194763.798 INFO lxc_cgroup - created cgroup
'/cgroup//lxc/testcat0'
lxc-start 1340194763.798 DEBUG lxc_cgroup - checking '/proc/bus/usb'
(usbfs)
lxc-start 1340194763.799 DEBUG lxc_conf - move '(null)' to '10730'
lxc-start 1340194763.858 DEBUG lxc_start - Dropped cap_sys_boot
lxc-start 1340194763.858 INFO lxc_conf - '' hostname has been setup
lxc-start 1340194763.900 DEBUG lxc_conf - mac address
'00:50:C2:45:3C:14' on 'eth0' has been setup
lxc-start 1340194763.904 DEBUG lxc_conf - 'eth0' has been setup
lxc-start 1340194763.904 INFO lxc_conf - network has been setup
lxc-start 1340194763.904 DEBUG lxc_conf - mounted
'/etc/lxc/testcat0/rootfs' on '/usr/lib/lxc/rootfs'
[...]
lxc-start 1340194763.905 INFO lxc_conf - mount points have been setup
lxc-start 1340194763.906 DEBUG lxc_conf - remounting
/cgroup/lxc/testcat0 on /usr/lib/lxc/rootfs/cgroup to respect bind or remount
options
lxc-start 1340194763.906 DEBUG lxc_conf - mounted
'/cgroup/lxc/testcat0' on '/usr/lib/lxc/rootfs/cgroup', type 'none'
lxc-start 1340194763.906 INFO lxc_conf - mount points have been setup
lxc-start 1340194763.906 DEBUG lxc_cgroup - lxc_cgroup_path_get:
called for subsys devices name testcat0
lxc-start 1340194763.907 DEBUG lxc_cgroup - using cgroup mounted at
'/cgroup/lxc'
lxc-start 1340194763.907 DEBUG lxc_cgroup - lxc_cgroup_path_get:
returning /cgroup/lxc/testcat0 for subsystem devices.deny
lxc-start 1340194763.907 DEBUG lxc_conf - cgroup 'devices.deny' set to
'a'
lxc-start 1340194763.907 DEBUG lxc_cgroup - lxc_cgroup_path_get:
called for subsys devices name testcat0
If manually clear or set /cgroup/cgroup.clone_children and delete/create
/cgroup/lxc it shows, that especial the absence of the lxc super-directory
will reproduce the issue. It will be created by the first start of lxc
afterwards (and never removed afterwards), but not yet used in this run.
Therefore, a quick workaround is to create it in the host init scripts.
greetings
Guido
------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Lxc-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/lxc-devel