Drop unneeded dnsmasq --filterwin2k
Fix unwanted connection closing, needed for boxes Fix libvirtd segfault with old netcf-libs (bz 853381)
This commit is contained in:
parent
e8969fb913
commit
f87237919c
125
libvirt-dnsmasq-drop-filterwin2k.patch
Normal file
125
libvirt-dnsmasq-drop-filterwin2k.patch
Normal file
@ -0,0 +1,125 @@
|
|||||||
|
commit f20b7dbe633acf7df9921027c6ca4f0b97918c8c
|
||||||
|
Author: Gene Czarcinski <gene@czarc.net>
|
||||||
|
Date: Thu Sep 6 12:08:22 2012 -0400
|
||||||
|
|
||||||
|
remove dnsmasq command line parameter "--filterwin2k"
|
||||||
|
|
||||||
|
This patch removed the "--filterwin2k" dnsmasq command line
|
||||||
|
parameter which was unnecessary for domain specification,
|
||||||
|
possibly blocked some usage, and was command line clutter.
|
||||||
|
|
||||||
|
Gene Czarcinski <gene@czarc.net>
|
||||||
|
|
||||||
|
diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
|
||||||
|
index 53eebed..808c843 100644
|
||||||
|
--- a/src/network/bridge_driver.c
|
||||||
|
+++ b/src/network/bridge_driver.c
|
||||||
|
@@ -543,7 +543,7 @@ networkBuildDnsmasqArgv(virNetworkObjPtr network,
|
||||||
|
/* need to specify local even if no domain specified */
|
||||||
|
virCommandAddArgFormat(cmd, "--local=/%s/",
|
||||||
|
network->def->domain ? network->def->domain : "");
|
||||||
|
- virCommandAddArgList(cmd, "--domain-needed", "--filterwin2k", NULL);
|
||||||
|
+ virCommandAddArg(cmd, "--domain-needed");
|
||||||
|
|
||||||
|
if (pidfile)
|
||||||
|
virCommandAddArgPair(cmd, "--pid-file", pidfile);
|
||||||
|
diff --git a/tests/networkxml2argvdata/isolated-network.argv b/tests/networkxml2argvdata/isolated-network.argv
|
||||||
|
index 276f42a..048c72b 100644
|
||||||
|
--- a/tests/networkxml2argvdata/isolated-network.argv
|
||||||
|
+++ b/tests/networkxml2argvdata/isolated-network.argv
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
@DNSMASQ@ --strict-order --bind-interfaces \
|
||||||
|
---local=// --domain-needed --filterwin2k --conf-file= \
|
||||||
|
+--local=// --domain-needed --conf-file= \
|
||||||
|
--except-interface lo --dhcp-option=3 --no-resolv \
|
||||||
|
--listen-address 192.168.152.1 \
|
||||||
|
--dhcp-range 192.168.152.2,192.168.152.254 \
|
||||||
|
diff --git a/tests/networkxml2argvdata/nat-network-dns-hosts.argv b/tests/networkxml2argvdata/nat-network-dns-hosts.argv
|
||||||
|
index 8040e2a..03a0676 100644
|
||||||
|
--- a/tests/networkxml2argvdata/nat-network-dns-hosts.argv
|
||||||
|
+++ b/tests/networkxml2argvdata/nat-network-dns-hosts.argv
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
@DNSMASQ@ --strict-order --bind-interfaces --domain=example.com \
|
||||||
|
---local=/example.com/ --domain-needed --filterwin2k \
|
||||||
|
+--local=/example.com/ --domain-needed \
|
||||||
|
--conf-file= --except-interface lo --listen-address 192.168.122.1 \
|
||||||
|
--expand-hosts --addn-hosts=/var/lib/libvirt/dnsmasq/default.addnhosts\
|
||||||
|
diff --git a/tests/networkxml2argvdata/nat-network-dns-srv-record-minimal.argv b/tests/networkxml2argvdata/nat-network-dns-srv-record-minimal.argv
|
||||||
|
index bb50fd6..a1e4200 100644
|
||||||
|
--- a/tests/networkxml2argvdata/nat-network-dns-srv-record-minimal.argv
|
||||||
|
+++ b/tests/networkxml2argvdata/nat-network-dns-srv-record-minimal.argv
|
||||||
|
@@ -1,7 +1,7 @@
|
||||||
|
@DNSMASQ@ \
|
||||||
|
--strict-order \
|
||||||
|
--bind-interfaces \
|
||||||
|
---local=// --domain-needed --filterwin2k --conf-file= \
|
||||||
|
+--local=// --domain-needed --conf-file= \
|
||||||
|
--except-interface lo \
|
||||||
|
--srv-host=name.tcp.,,,, \
|
||||||
|
--listen-address 192.168.122.1 \
|
||||||
|
diff --git a/tests/networkxml2argvdata/nat-network-dns-srv-record.argv b/tests/networkxml2argvdata/nat-network-dns-srv-record.argv
|
||||||
|
index 36498f2..8af38c4 100644
|
||||||
|
--- a/tests/networkxml2argvdata/nat-network-dns-srv-record.argv
|
||||||
|
+++ b/tests/networkxml2argvdata/nat-network-dns-srv-record.argv
|
||||||
|
@@ -1,7 +1,7 @@
|
||||||
|
@DNSMASQ@ \
|
||||||
|
--strict-order \
|
||||||
|
--bind-interfaces \
|
||||||
|
---local=// --domain-needed --filterwin2k --conf-file= \
|
||||||
|
+--local=// --domain-needed --conf-file= \
|
||||||
|
--except-interface lo \
|
||||||
|
--srv-host=name.tcp.test-domain-name,.,1024,10,10 \
|
||||||
|
--listen-address 192.168.122.1 \
|
||||||
|
diff --git a/tests/networkxml2argvdata/nat-network-dns-txt-record.argv b/tests/networkxml2argvdata/nat-network-dns-txt-record.argv
|
||||||
|
index 2a6c799..404b56a 100644
|
||||||
|
--- a/tests/networkxml2argvdata/nat-network-dns-txt-record.argv
|
||||||
|
+++ b/tests/networkxml2argvdata/nat-network-dns-txt-record.argv
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
@DNSMASQ@ --strict-order --bind-interfaces \
|
||||||
|
---local=// --domain-needed --filterwin2k --conf-file= \
|
||||||
|
+--local=// --domain-needed --conf-file= \
|
||||||
|
--except-interface lo --txt-record=example,example value \
|
||||||
|
--listen-address 192.168.122.1 --listen-address 192.168.123.1 \
|
||||||
|
--listen-address 2001:db8:ac10:fe01::1 \
|
||||||
|
diff --git a/tests/networkxml2argvdata/nat-network.argv b/tests/networkxml2argvdata/nat-network.argv
|
||||||
|
index 265b931..1dc8f73 100644
|
||||||
|
--- a/tests/networkxml2argvdata/nat-network.argv
|
||||||
|
+++ b/tests/networkxml2argvdata/nat-network.argv
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
@DNSMASQ@ --strict-order --bind-interfaces \
|
||||||
|
---local=// --domain-needed --filterwin2k --conf-file= \
|
||||||
|
+--local=// --domain-needed --conf-file= \
|
||||||
|
--except-interface lo --listen-address 192.168.122.1 \
|
||||||
|
--listen-address 192.168.123.1 --listen-address 2001:db8:ac10:fe01::1 \
|
||||||
|
--listen-address 2001:db8:ac10:fd01::1 --listen-address 10.24.10.1 \
|
||||||
|
diff --git a/tests/networkxml2argvdata/netboot-network.argv b/tests/networkxml2argvdata/netboot-network.argv
|
||||||
|
index 4f998d5..5a85ec2 100644
|
||||||
|
--- a/tests/networkxml2argvdata/netboot-network.argv
|
||||||
|
+++ b/tests/networkxml2argvdata/netboot-network.argv
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
@DNSMASQ@ --strict-order --bind-interfaces --domain=example.com \
|
||||||
|
---local=/example.com/ --domain-needed --filterwin2k --conf-file= \
|
||||||
|
+--local=/example.com/ --domain-needed --conf-file= \
|
||||||
|
--except-interface lo --listen-address 192.168.122.1 \
|
||||||
|
--dhcp-range 192.168.122.2,192.168.122.254 \
|
||||||
|
--dhcp-leasefile=/var/lib/libvirt/dnsmasq/netboot.leases \
|
||||||
|
diff --git a/tests/networkxml2argvdata/netboot-proxy-network.argv b/tests/networkxml2argvdata/netboot-proxy-network.argv
|
||||||
|
index 89319ef..36836b0 100644
|
||||||
|
--- a/tests/networkxml2argvdata/netboot-proxy-network.argv
|
||||||
|
+++ b/tests/networkxml2argvdata/netboot-proxy-network.argv
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
@DNSMASQ@ --strict-order --bind-interfaces --domain=example.com \
|
||||||
|
---local=/example.com/ --domain-needed --filterwin2k --conf-file= \
|
||||||
|
+--local=/example.com/ --domain-needed --conf-file= \
|
||||||
|
--except-interface lo --listen-address 192.168.122.1 \
|
||||||
|
--dhcp-range 192.168.122.2,192.168.122.254 \
|
||||||
|
--dhcp-leasefile=/var/lib/libvirt/dnsmasq/netboot.leases \
|
||||||
|
diff --git a/tests/networkxml2argvdata/routed-network.argv b/tests/networkxml2argvdata/routed-network.argv
|
||||||
|
index ac43991..77e802f 100644
|
||||||
|
--- a/tests/networkxml2argvdata/routed-network.argv
|
||||||
|
+++ b/tests/networkxml2argvdata/routed-network.argv
|
||||||
|
@@ -1,3 +1,3 @@
|
||||||
|
@DNSMASQ@ --strict-order --bind-interfaces \
|
||||||
|
---local=// --domain-needed --filterwin2k --conf-file= \
|
||||||
|
+--local=// --domain-needed --conf-file= \
|
||||||
|
--except-interface lo --listen-address 192.168.122.1\
|
52
libvirt-fix-unwanted-connection-closing.patch
Normal file
52
libvirt-fix-unwanted-connection-closing.patch
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
commit 164c03d33bd9d58844921888560baf3f156a1f05
|
||||||
|
Author: Christophe Fergeau <cfergeau@redhat.com>
|
||||||
|
Date: Mon Sep 10 12:17:07 2012 +0200
|
||||||
|
|
||||||
|
Fix unwanted closing of libvirt client connection
|
||||||
|
|
||||||
|
e5a1bee07 introduced a regression in Boxes: when Boxes is left idle
|
||||||
|
(it's still doing some libvirt calls in the background), the
|
||||||
|
libvirt connection gets closed after a few minutes. What happens is
|
||||||
|
that this code in virNetClientIOHandleOutput gets triggered:
|
||||||
|
|
||||||
|
if (!thecall)
|
||||||
|
return -1; /* Shouldn't happen, but you never know... */
|
||||||
|
|
||||||
|
and after the changes in e5a1bee07, this causes the libvirt connection
|
||||||
|
to be closed.
|
||||||
|
|
||||||
|
Upon further investigation, what happens is that
|
||||||
|
virNetClientIOHandleOutput is called from gvir_event_handle_dispatch
|
||||||
|
in libvirt-glib, which is triggered because the client fd became
|
||||||
|
writable. However, between the times gvir_event_handle_dispatch
|
||||||
|
is called, and the time the client lock is grabbed and
|
||||||
|
virNetClientIOHandleOutput is called, another thread runs and
|
||||||
|
completes the current call. 'thecall' is then NULL when the first
|
||||||
|
thread gets to run virNetClientIOHandleOutput.
|
||||||
|
|
||||||
|
After describing this situation on IRC, danpb suggested this:
|
||||||
|
|
||||||
|
11:37 < danpb> In that case I think the correct thing would be to change
|
||||||
|
'return -1' above to 'return 0' since that's not actually an
|
||||||
|
error - its a rare, but expected event
|
||||||
|
|
||||||
|
which is what this patch is doing. I've tested it against master
|
||||||
|
libvirt, and I didn't get disconnected in ~10 minutes while this
|
||||||
|
happens in less than 5 minutes without this patch.
|
||||||
|
|
||||||
|
diff --git a/src/rpc/virnetclient.c b/src/rpc/virnetclient.c
|
||||||
|
index 43a9814..727ed67 100644
|
||||||
|
--- a/src/rpc/virnetclient.c
|
||||||
|
+++ b/src/rpc/virnetclient.c
|
||||||
|
@@ -1205,7 +1205,10 @@ virNetClientIOHandleOutput(virNetClientPtr client)
|
||||||
|
thecall = thecall->next;
|
||||||
|
|
||||||
|
if (!thecall)
|
||||||
|
- return -1; /* Shouldn't happen, but you never know... */
|
||||||
|
+ return 0; /* This can happen if another thread raced with us and
|
||||||
|
+ * completed the call between the time this thread woke
|
||||||
|
+ * up from poll()ing and the time we locked the client
|
||||||
|
+ */
|
||||||
|
|
||||||
|
while (thecall) {
|
||||||
|
ssize_t ret = virNetClientIOWriteMessage(client, thecall);
|
16
libvirt.spec
16
libvirt.spec
@ -315,7 +315,7 @@
|
|||||||
Summary: Library providing a simple virtualization API
|
Summary: Library providing a simple virtualization API
|
||||||
Name: libvirt
|
Name: libvirt
|
||||||
Version: 0.10.1
|
Version: 0.10.1
|
||||||
Release: 2%{?dist}%{?extra_release}
|
Release: 3%{?dist}%{?extra_release}
|
||||||
License: LGPLv2+
|
License: LGPLv2+
|
||||||
Group: Development/Libraries
|
Group: Development/Libraries
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
||||||
@ -325,6 +325,10 @@ URL: http://libvirt.org/
|
|||||||
%define mainturl stable_updates/
|
%define mainturl stable_updates/
|
||||||
%endif
|
%endif
|
||||||
Source: http://libvirt.org/sources/%{?mainturl}libvirt-%{version}.tar.gz
|
Source: http://libvirt.org/sources/%{?mainturl}libvirt-%{version}.tar.gz
|
||||||
|
# Drop unneeded dnsmasq --filterwin2k
|
||||||
|
Patch1: %{name}-dnsmasq-drop-filterwin2k.patch
|
||||||
|
# Fix unwanted connection closing, needed for boxes
|
||||||
|
Patch2: %{name}-fix-unwanted-connection-closing.patch
|
||||||
|
|
||||||
%if %{with_libvirtd}
|
%if %{with_libvirtd}
|
||||||
Requires: libvirt-daemon = %{version}-%{release}
|
Requires: libvirt-daemon = %{version}-%{release}
|
||||||
@ -589,6 +593,9 @@ Requires: iptables-ipv6
|
|||||||
%if %{with_nwfilter}
|
%if %{with_nwfilter}
|
||||||
Requires: ebtables
|
Requires: ebtables
|
||||||
%endif
|
%endif
|
||||||
|
%if %{with_netcf} && (0%{?fedora} >= 18 || 0%{?rhel} >= 7)
|
||||||
|
Requires: netcf-libs >= 0.2.2
|
||||||
|
%endif
|
||||||
# needed for device enumeration
|
# needed for device enumeration
|
||||||
%if %{with_hal}
|
%if %{with_hal}
|
||||||
Requires: hal
|
Requires: hal
|
||||||
@ -1032,6 +1039,8 @@ of recent versions of Linux (and other OSes).
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
%patch1 -p1
|
||||||
|
%patch2 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%if ! %{with_xen}
|
%if ! %{with_xen}
|
||||||
@ -1859,6 +1868,11 @@ rm -f $RPM_BUILD_ROOT%{_sysconfdir}/sysctl.d/libvirtd
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Sep 12 2012 Cole Robinson <crobinso@redhat.com> - 0.10.1-3
|
||||||
|
- Fix libvirtd segfault with old netcf-libs (bz 853381)
|
||||||
|
- Drop unneeded dnsmasq --filterwin2k
|
||||||
|
- Fix unwanted connection closing, needed for boxes
|
||||||
|
|
||||||
* Wed Sep 5 2012 Daniel P. Berrange <berrange@redhat.com> - 0.10.1-2
|
* Wed Sep 5 2012 Daniel P. Berrange <berrange@redhat.com> - 0.10.1-2
|
||||||
- Remove dep on ceph RPM (rhbz #854360)
|
- Remove dep on ceph RPM (rhbz #854360)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user