On Di, 2014-02-18 at 16:06 -0700, Eric Blake wrote:
There should be no problem upgrading to a newer libvirt. We take
great
pains to ensure that a newer version of libvirt can be reloaded and
gracefully understand the XML recorded by older versions, with no loss
to running VMs. While there have been bugs on this front, they get
caught and patched quickly, so by updating to something like the latest
Fedora stable build (currently 1.1.3.3), you are even more likely to
avoid these sorts of problems when compared to upgrading all the way to
the master branch of libvirt.
After i forced myself to upgrade and compile a newer version of libvirt,
(to be precise, i wanted to upgrade to the latest libvirt-1.2.1.tar.gz)
i ran into some problems. I compiled libvirt with the following options:
As a reminder, i'm running ""good"" old Ubuntu 12.04:
./configure --with-lxc --with-storage-lvm --prefix=/usr --localstatedir=/var
--sysconfdir=/etc
Compiling and installing worked perfectly after installing all missing
dependencies. At first everything looked fine and all created networks
and domains where still running. To be sure everything would survive a
system restart, i rebooted. Thats when everything (or something) went
wrong. After starting libvirtd i got the following error:
>> error: Failed to start network hetzner-subnet-v4
>> error: unsupported configuration: Publicly routable address 1.2.3.65 is
prohibited.
>> The version of dnsmasq on this host (2.59) doesn't support the bind-dynamic
option
>> or use SO_BINDTODEVICE on listening sockets, one of which is required for safe
>> operation on a publicly routable subnet (see CVE-2012-3411). You must either
upgrade
>> dnsmasq, or use a private/local subnet range for this network (as described in
RFC1918/RFC3484/RFC4193).
Since no VM was running at this point (because of the missing networks),
i decided to quickly update to a newer version of DNSMASQ (2.68) and
installed this to "/usr/local/sbin" and linked it to
"/usr/sbin/dnsmasq"
after removing the distribution specific packages. When i tried to start
the hetzner-subnet-v4 network, i got the following error:
>> 2014-02-19 14:11:58.636+0000: 7075: error :
virCommandWait:2376 : internal error: Child process (LC_ALL=C
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin HOME=/root USER=root
LOGNAME=root /usr/sbin/dnsmasq --version) unexpected exit status 1: libvirt: error :
cannot execute binary /usr/sbin/dnsmasq: Permission denied
>> 2014-02-19 14:11:58.636+0000: 7075: error :
dnsmasqCapsRefreshInternal:747 : failed to run '/usr/sbin/dnsmasq --version': :
Success
>> error: Failed to start network hetzner-subnet-v4
>> error: failed to run '/usr/sbin/dnsmasq --version': : Success
However, running dnsmasq manually worked. Since that was the moment the first
phonecalls started because users could not access their services on the VMs
i quickly reverted everything to its previous state to get everything up and
running again. I dont have any testing server, so i could not play around with
it anymore (better to say not right now. I might have to wait until everyone is
sleeping ;)). Does libvirt has any problems when accessing a softlink instead
of a binary? Poorly that possibility came into my mind after reverting back to
its original state!
I'm really sorry to spam you guys with all my problems ;)
Kind regards,
Sebastian