On Tue, Mar 5, 2013 at 9:33 PM, Doug Goldstein <cardoe(a)gentoo.org> wrote:
On Tue, Mar 5, 2013 at 4:13 PM, Dennis Jenkins
<dennis.jenkins.75(a)gmail.com> wrote:
>
> Update: 1.0.3 still fails to boot an LXC container on Gentoo Linux.
>
> Libvirt 1.0.3 appeared in Gentoo Portage this morning. I updated my
> host's kernel to 3.7.10 and libvirt from 1.0.0 to 1.0.3. I still
> cannot boot an LXC container. This exact same container was working
> fine 30 minutes ago on libvirt 1.0.0.
>
> I tried both the "libvirt-1.0.3" ebuild and the "libvirt-9999"
ebuild
> (get most recent master branch from git). Both produce the same
> results.
>
>
> ostara ~ # equery l 'libvirt'
> * Searching for libvirt ...
> [IP-] [ -] app-emulation/libvirt-9999:0
>
> ostara ~ # virsh --version
> 1.0.3
virsh version --daemon would check that the daemon is 1.0.3 as well
and not just the client.
>
> ostara ~ # uname -a
> Linux ostara 3.7.10-gentoo #1 SMP PREEMPT Tue Mar 5 15:23:39 CST 2013
> x86_64 Intel(R) Core(TM) i5 CPU 760 @ 2.80GHz GenuineIntel GNU/Linux
>
grep FUSE_FS /usr/src/linux/.config
if, =m then: lsmod | grep fuse
lastly, check if you have sys-fs/fuse installed.
Doug Goldstein
Doug, Gao, thank you for your suggestions. I performed the
experiments that Doug requested. I did not edit the libvirt code as
Gao suggested (yet).
ostara ~ # virsh version --daemon
Compiled against library: libvirt 1.0.0
Using library: libvirt 1.0.0
Using API: QEMU 1.0.0
Running hypervisor: QEMU 1.2.2
Running against daemon: 1.0.0
(libvirt-1.0.0 works)
ostara ~ # zgrep "FUSE_FS" /proc/config.gz
CONFIG_FUSE_FS=m
ostara ~ # lsmod | grep fuse
fuse 61951 0
ostara ~ # equery l sys-fs/fuse
* Searching for fuse in sys-fs ...
[IP-] [ ] sys-fs/fuse-2.9.1-r1:0
ostara ~ # ACCEPT_KEYWORDS='**' emerge -q =libvirt-9999
(output omitted - installs latest libvirt from git repo, v 1.0.3)
ostara ~ # /etc/init.d/libvirtd restart
(output omitted)
ostara ~ # virsh version --daemon
Compiled against library: libvirt 1.0.3
Using library: libvirt 1.0.3
Using API: QEMU 1.0.3
Running hypervisor: QEMU 1.2.2
Running against daemon: 1.0.3
ostara ~ # virsh -c lxc:// start dwj-lnx-dev
error: Failed to start domain dwj-lnx-dev
error: internal error guest failed to start: PATH=/bin:/sbin
TERM=linux container=lxc-libvirt
container_uuid=fbcd8c3a-9939-12b4-727d-5d3526bc448f
LIBVIRT_LXC_UUID=fbcd8c3a-9939-12b4-727d-5d3526bc448f
LIBVIRT_LXC_NAME=dwj-lnx-dev /sbin/init
2013-03-06 13:51:53.894+0000: 1: info : libvirt version: 1.0.3
2013-03-06 13:51:53.894+0000: 1: error : lxcContainerMountProcFuse:616
: Failed to mount /.oldroot//var/run/libvirt/lxc/dwj-lnx-dev/meminfo
on /proc/meminfo: No such file or directory
2013-03-06 13:51:53.913+0000: 26200: info : libvirt version: 1.0.3
2013-03-06 13:51:53.913+0000: 26200: error : virLXCControllerRun:1462
: Unable to send container continue message: Broken pipe
2013-03-06 13:51:53.947+0000: 26200: error : virCommandWait:2313 :
internal error Child process (ip link del veth1) unexpected exit
status 1: Cannot find device "veth1"
ostara ~ # ls -l /var/run/libvirt/lxc/dwj-lnx-dev
total 0
ostara ~ # ll /var/run/libvirt/lxc/dwj-lnx-dev
-bash: ll: command not found
ostara ~ # touch /var/run/libvirt/lxc/dwj-lnx-dev/meminfo
ostara ~ # virsh -c lxc:// start dwj-lnx-dev
error: Failed to start domain dwj-lnx-dev
error: internal error guest failed to start: fuse: mountpoint is not empty
fuse: if you are sure this is safe, use the 'nonempty' mount option
ostara ~ # rm -rf /var/run/libvirt/lxc/dwj-lnx-dev
ostara ~ # virsh -c lxc:// start dwj-lnx-dev
error: Failed to start domain dwj-lnx-dev
error: internal error guest failed to start: PATH=/bin:/sbin
TERM=linux container=lxc-libvirt
container_uuid=fbcd8c3a-9939-12b4-727d-5d3526bc448f
LIBVIRT_LXC_UUID=fbcd8c3a-9939-12b4-727d-5d3526bc448f
LIBVIRT_LXC_NAME=dwj-lnx-dev /sbin/init
2013-03-06 13:53:35.634+0000: 1: info : libvirt version: 1.0.3
2013-03-06 13:53:35.634+0000: 1: error : lxcContainerMountProcFuse:616
: Failed to mount /.oldroot//var/run/libvirt/lxc/dwj-lnx-dev/meminfo
on /proc/meminfo: No such file or directory
2013-03-06 13:53:35.634+0000: 26783: info : libvirt version: 1.0.3
2013-03-06 13:53:35.634+0000: 26783: error : virLXCControllerRun:1468
: error receiving signal from container: Input/output error
2013-03-06 13:53:35.697+0000: 26783: error : virCommandWait:2313 :
internal error Child process (ip link del veth1) unexpected exit
status 1: Cannot find device "veth1"
ostara ~ # ifconfig -a | awk '/^\w/ { print $0 }'
br0: flags=4355<UP,BROADCAST,PROMISC,MULTICAST> mtu 1500
br1: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST> mtu 1500
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
eth2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
(eth0 = my private LAN)
(eth1 = public IP from DSL modem)
(eth2 = private DMZ to wifi access point)
(br0 = manually managed internal bridge used by QEMU VMs, not tied to
any physical NIC)
(br1 = unused at this time)
(virbr0 = managed by libvirt)
ostara ~ # virsh -c lxc:// dumpxml dwj-lnx-dev
<domain type='lxc'>
<name>dwj-lnx-dev</name>
<uuid>fbcd8c3a-9939-12b4-727d-5d3526bc448f</uuid>
<memory unit='KiB'>500000</memory>
<currentMemory unit='KiB'>500000</currentMemory>
<vcpu placement='static'>2</vcpu>
<os>
<type arch='x86_64'>exe</type>
<init>/sbin/init</init>
</os>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<devices>
<emulator>/usr/libexec/libvirt_lxc</emulator>
<filesystem type='mount' accessmode='passthrough'>
<source dir='/vm/lxc/dwj-lnx-dev'/>
<target dir='/'/>
</filesystem>
<filesystem type='mount' accessmode='passthrough'>
<source dir='/usr/portage'/>
<target dir='/usr/portage'/>
</filesystem>
<filesystem type='mount' accessmode='passthrough'>
<source dir='/usr/src'/>
<target dir='/usr/src'/>
</filesystem>
<filesystem type='mount' accessmode='passthrough'>
<source dir='/home'/>
<target dir='/home'/>
</filesystem>
<interface type='bridge'>
<mac address='82:00:00:00:01:00'/>
<source bridge='br0'/>
</interface>
<console type='pty'>
<target type='lxc' port='0'/>
</console>
</devices>
</domain>