Rebase to 10.5.0 release
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
parent
9ae002fc72
commit
0862e2b778
@ -1,41 +0,0 @@
|
|||||||
From 3499354e12a1c1832bf4030693a64e03ceb79d05 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
|
|
||||||
Date: Wed, 5 Jun 2024 11:16:21 +0100
|
|
||||||
Subject: [PATCH] interface: fix udev reference leak with invalid flags
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
The udevInterfaceGetXMLDesc method takes a reference on the udev
|
|
||||||
driver as its first action. If the virCheckFlags() condition
|
|
||||||
fails, however, this reference is never released.
|
|
||||||
|
|
||||||
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
|
|
||||||
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
|
|
||||||
---
|
|
||||||
src/interface/interface_backend_udev.c | 4 +++-
|
|
||||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/interface/interface_backend_udev.c b/src/interface/interface_backend_udev.c
|
|
||||||
index fdf11a8318..e1a50389c9 100644
|
|
||||||
--- a/src/interface/interface_backend_udev.c
|
|
||||||
+++ b/src/interface/interface_backend_udev.c
|
|
||||||
@@ -1027,12 +1027,14 @@ static char *
|
|
||||||
udevInterfaceGetXMLDesc(virInterfacePtr ifinfo,
|
|
||||||
unsigned int flags)
|
|
||||||
{
|
|
||||||
- struct udev *udev = udev_ref(driver->udev);
|
|
||||||
+ struct udev *udev = NULL;
|
|
||||||
g_autoptr(virInterfaceDef) ifacedef = NULL;
|
|
||||||
char *xmlstr = NULL;
|
|
||||||
|
|
||||||
virCheckFlags(VIR_INTERFACE_XML_INACTIVE, NULL);
|
|
||||||
|
|
||||||
+ udev = udev_ref(driver->udev);
|
|
||||||
+
|
|
||||||
/* Recursively build up the interface XML based on the requested
|
|
||||||
* interface name
|
|
||||||
*/
|
|
||||||
--
|
|
||||||
2.45.1
|
|
||||||
|
|
@ -1,49 +0,0 @@
|
|||||||
From 98f1cf88fa7e0f992d93f376418fbfb3996a9690 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
|
|
||||||
Date: Fri, 17 May 2024 14:55:24 +0100
|
|
||||||
Subject: [PATCH] rpc: avoid leak of GSource in use for interrupting main loop
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
We never release the reference on the GSource created for
|
|
||||||
interrupting the main loop, nor do we remove it from the
|
|
||||||
main context if our thread is woken up prior to the wakeup
|
|
||||||
callback firing.
|
|
||||||
|
|
||||||
This can result in a leak of GSource objects, along with an
|
|
||||||
ever growing list of GSources attached to the main context,
|
|
||||||
which will gradually slow down execution of the loop, as
|
|
||||||
several operations are O(N) for the number of attached GSource
|
|
||||||
objects.
|
|
||||||
|
|
||||||
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
|
|
||||||
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
|
|
||||||
---
|
|
||||||
src/rpc/virnetclient.c | 3 ++-
|
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/rpc/virnetclient.c b/src/rpc/virnetclient.c
|
|
||||||
index 147b0d661a..6d424eb599 100644
|
|
||||||
--- a/src/rpc/virnetclient.c
|
|
||||||
+++ b/src/rpc/virnetclient.c
|
|
||||||
@@ -1946,7 +1946,7 @@ static int virNetClientIO(virNetClient *client,
|
|
||||||
/* Check to see if another thread is dispatching */
|
|
||||||
if (client->haveTheBuck) {
|
|
||||||
/* Force other thread to wakeup from poll */
|
|
||||||
- GSource *wakeup = g_idle_source_new();
|
|
||||||
+ g_autoptr(GSource) wakeup = g_idle_source_new();
|
|
||||||
g_source_set_callback(wakeup, virNetClientIOWakeup, client->eventLoop, NULL);
|
|
||||||
g_source_attach(wakeup, client->eventCtx);
|
|
||||||
|
|
||||||
@@ -1968,6 +1968,7 @@ static int virNetClientIO(virNetClient *client,
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ g_source_destroy(wakeup);
|
|
||||||
VIR_DEBUG("Woken up from sleep head=%p call=%p",
|
|
||||||
client->waitDispatch, thiscall);
|
|
||||||
/* Three reasons we can be woken up
|
|
||||||
--
|
|
||||||
2.45.1
|
|
||||||
|
|
24
libvirt.spec
24
libvirt.spec
@ -288,8 +288,8 @@
|
|||||||
|
|
||||||
Summary: Library providing a simple virtualization API
|
Summary: Library providing a simple virtualization API
|
||||||
Name: libvirt
|
Name: libvirt
|
||||||
Version: 10.4.0
|
Version: 10.5.0
|
||||||
Release: 2%{?dist}
|
Release: 1%{?dist}
|
||||||
License: GPL-2.0-or-later AND LGPL-2.1-only AND LGPL-2.1-or-later AND OFL-1.1
|
License: GPL-2.0-or-later AND LGPL-2.1-only AND LGPL-2.1-or-later AND OFL-1.1
|
||||||
URL: https://libvirt.org/
|
URL: https://libvirt.org/
|
||||||
|
|
||||||
@ -297,8 +297,6 @@ URL: https://libvirt.org/
|
|||||||
%define mainturl stable_updates/
|
%define mainturl stable_updates/
|
||||||
%endif
|
%endif
|
||||||
Source: https://download.libvirt.org/%{?mainturl}libvirt-%{version}.tar.xz
|
Source: https://download.libvirt.org/%{?mainturl}libvirt-%{version}.tar.xz
|
||||||
Patch2: 0001-rpc-avoid-leak-of-GSource-in-use-for-interrupting-ma.patch
|
|
||||||
Patch3: 0001-interface-fix-udev-reference-leak-with-invalid-flags.patch
|
|
||||||
|
|
||||||
Requires: libvirt-daemon = %{version}-%{release}
|
Requires: libvirt-daemon = %{version}-%{release}
|
||||||
Requires: libvirt-daemon-config-network = %{version}-%{release}
|
Requires: libvirt-daemon-config-network = %{version}-%{release}
|
||||||
@ -1034,8 +1032,6 @@ capabilities of VirtualBox
|
|||||||
%package client
|
%package client
|
||||||
Summary: Client side utilities of the libvirt library
|
Summary: Client side utilities of the libvirt library
|
||||||
Requires: libvirt-libs = %{version}-%{release}
|
Requires: libvirt-libs = %{version}-%{release}
|
||||||
# Needed by virt-pki-validate script.
|
|
||||||
Requires: gnutls-utils
|
|
||||||
|
|
||||||
# Ensure smooth upgrades
|
# Ensure smooth upgrades
|
||||||
Obsoletes: libvirt-bash-completion < 7.3.0
|
Obsoletes: libvirt-bash-completion < 7.3.0
|
||||||
@ -1057,8 +1053,6 @@ with some QEMU specific features of libvirt.
|
|||||||
|
|
||||||
%package libs
|
%package libs
|
||||||
Summary: Client side libraries
|
Summary: Client side libraries
|
||||||
# So remote clients can access libvirt over SSH tunnel
|
|
||||||
Requires: cyrus-sasl
|
|
||||||
# Needed by default sasl.conf - no onerous extra deps, since
|
# Needed by default sasl.conf - no onerous extra deps, since
|
||||||
# 100's of other things on a system already pull in krb5-libs
|
# 100's of other things on a system already pull in krb5-libs
|
||||||
Requires: cyrus-sasl-gssapi
|
Requires: cyrus-sasl-gssapi
|
||||||
@ -1331,6 +1325,8 @@ export SOURCE_DATE_EPOCH=$(stat --printf='%Y' %{_specdir}/libvirt.spec)
|
|||||||
%meson \
|
%meson \
|
||||||
-Drunstatedir=%{_rundir} \
|
-Drunstatedir=%{_rundir} \
|
||||||
-Dinitconfdir=%{_sysconfdir}/sysconfig \
|
-Dinitconfdir=%{_sysconfdir}/sysconfig \
|
||||||
|
-Dunitdir=%{_unitdir} \
|
||||||
|
-Dsysusersdir=%{_sysusersdir} \
|
||||||
%{?arg_qemu} \
|
%{?arg_qemu} \
|
||||||
%{?arg_openvz} \
|
%{?arg_openvz} \
|
||||||
%{?arg_lxc} \
|
%{?arg_lxc} \
|
||||||
@ -1487,7 +1483,8 @@ export SOURCE_DATE_EPOCH=$(stat --printf='%Y' %{_specdir}/libvirt.spec)
|
|||||||
-Dtests=disabled \
|
-Dtests=disabled \
|
||||||
-Dudev=disabled \
|
-Dudev=disabled \
|
||||||
-Dwireshark_dissector=disabled \
|
-Dwireshark_dissector=disabled \
|
||||||
-Dyajl=disabled
|
-Dyajl=disabled \
|
||||||
|
%{?enable_werror}
|
||||||
%mingw_ninja
|
%mingw_ninja
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@ -1594,7 +1591,7 @@ rm -rf $RPM_BUILD_ROOT%{mingw64_libexecdir}/libvirt-guests.sh
|
|||||||
%if %{with_native}
|
%if %{with_native}
|
||||||
# Building on slow archs, like emulated s390x in Fedora copr, requires
|
# Building on slow archs, like emulated s390x in Fedora copr, requires
|
||||||
# raising the test timeout
|
# raising the test timeout
|
||||||
VIR_TEST_DEBUG=1
|
export VIR_TEST_DEBUG=1
|
||||||
%meson_test --no-suite syntax-check --timeout-multiplier 10
|
%meson_test --no-suite syntax-check --timeout-multiplier 10
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
@ -2515,7 +2512,7 @@ exit 0
|
|||||||
%{mingw32_bindir}/virt-admin.exe
|
%{mingw32_bindir}/virt-admin.exe
|
||||||
%{mingw32_bindir}/virt-xml-validate
|
%{mingw32_bindir}/virt-xml-validate
|
||||||
%{mingw32_bindir}/virt-pki-query-dn.exe
|
%{mingw32_bindir}/virt-pki-query-dn.exe
|
||||||
%{mingw32_bindir}/virt-pki-validate
|
%{mingw32_bindir}/virt-pki-validate.exe
|
||||||
%{mingw32_bindir}/libvirt-lxc-0.dll
|
%{mingw32_bindir}/libvirt-lxc-0.dll
|
||||||
%{mingw32_bindir}/libvirt-qemu-0.dll
|
%{mingw32_bindir}/libvirt-qemu-0.dll
|
||||||
%{mingw32_bindir}/libvirt-admin-0.dll
|
%{mingw32_bindir}/libvirt-admin-0.dll
|
||||||
@ -2574,7 +2571,7 @@ exit 0
|
|||||||
%{mingw64_bindir}/virt-admin.exe
|
%{mingw64_bindir}/virt-admin.exe
|
||||||
%{mingw64_bindir}/virt-xml-validate
|
%{mingw64_bindir}/virt-xml-validate
|
||||||
%{mingw64_bindir}/virt-pki-query-dn.exe
|
%{mingw64_bindir}/virt-pki-query-dn.exe
|
||||||
%{mingw64_bindir}/virt-pki-validate
|
%{mingw64_bindir}/virt-pki-validate.exe
|
||||||
%{mingw64_bindir}/libvirt-lxc-0.dll
|
%{mingw64_bindir}/libvirt-lxc-0.dll
|
||||||
%{mingw64_bindir}/libvirt-qemu-0.dll
|
%{mingw64_bindir}/libvirt-qemu-0.dll
|
||||||
%{mingw64_bindir}/libvirt-admin-0.dll
|
%{mingw64_bindir}/libvirt-admin-0.dll
|
||||||
@ -2624,6 +2621,9 @@ exit 0
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Jul 4 2024 Daniel P. Berrangé <berrange@redhat.com> - 10.5.0-1
|
||||||
|
- Rebase to 10.5.0 release
|
||||||
|
|
||||||
* Wed Jun 5 2024 Daniel P. Berrangé <berrange@redhat.com> - 10.4.0-2
|
* Wed Jun 5 2024 Daniel P. Berrangé <berrange@redhat.com> - 10.4.0-2
|
||||||
- Fix leak of GSource handle
|
- Fix leak of GSource handle
|
||||||
- Fix leak of udev reference (rhbz #2266017)
|
- Fix leak of udev reference (rhbz #2266017)
|
||||||
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (libvirt-10.4.0.tar.xz) = 711be39f3fb831a5073b25a5b02410676147114f3dcf85b24c8505b611a81bf64cf3b95f66908e0dc3a2f3e66e5fc31b2d95db610ea3f1b747a9fd1f52b1ffa7
|
SHA512 (libvirt-10.5.0.tar.xz) = e4976849cff7bdae0b7fda0644490f0ca743efc11c35a2fae45bb0f6f467b85644c1d04d1f3d1b10affdc6d9b8dcc0a3c255e527e0bdd73cdd4d1c81d5c418e7
|
||||||
|
Loading…
Reference in New Issue
Block a user