
On 10/05/2010 03:44 PM, Jiri Denemark wrote:
21:31:09.298: error : virRunWithHook:857 : internal error '/usr/sbin/iptables --table mangle --insert POSTROUTING --out-interface virbr0 --protocol udp --destination-port 68 --jump CHECKSUM --checksum-fill' exited with non-zero status 2 and signal 0: iptables v1.4.7: unknown option `--checksum-fill' Try `iptables -h' or 'iptables --help' for more information. This is harmless and ignored by libvirt. If DHCP still works in your guests, you don't need worry about this feature. The warning below tries to suggest the error was ignored...
Correct. The reason for this is that the only way to determine whether or not iptables supports the new CHECKSUM target is to try the command and see if it fails. Since the CHECKSUM target is in upstream iptables, it will eventually be in all distro-specific versions, so the less-than-elegant warning was deemed sufficient. This particular rule is required to support guests that use the vhost-net module (ie kernel-based rather than userspace-based) for virtio network interfaces. Whether or not that will be needed depends on guest config, which can't be known at the time that the virtual networks are started, so we must always try to add it, then fail "semi-silently" (we continue, but first complain a little).
21:31:09.299: warning : networkAddIptablesRules:873 : Could not add rule to fixup DHCP response checksums on network 'default'. 21:31:09.299: warning : networkAddIptablesRules:874 : May need to update iptables package& kernel to support CHECKSUM rule. 21:31:09.301: error : virRunWithHook:857 : internal error '/usr/sbin/dnsmasq --strict-order --bind-interfaces --pid-file=/var/run/libvirt/network/default.pid --conf-file= --listen-address 10.117.9.1 --except-interface lo' exited with non-zero status 1 and signal 0: libvir: error : cannot execute binary /usr/sbin/dnsmasq: No such file or directory This is the really important error for you; /usr/sbin/dnsmasq could not be found.
That location comes from config.h, so it's determined at configure time. Apparently it found /usr/sbin/dnsmasq at configure time. Did you build on a different machine from where you're running (and maybe this new machine doesn't have dnsmasq installed? It should be in the prerequisites for your libvirt package to ensure that it's always installed when libvirt is installed).