libvirt-9.0.0-3
Fix 'Tray of device is not open' error when changing CDROM (bz #2163117) Fix curl API deprecation error
This commit is contained in:
parent
619904f37a
commit
9d434902d2
@ -0,0 +1,58 @@
|
|||||||
|
From: Peter Krempa <pkrempa@redhat.com>
|
||||||
|
Date: Thu, 9 Feb 2023 09:40:32 +0100
|
||||||
|
Subject: [PATCH] qemuProcessRefreshDisks: Don't skip filling of disk
|
||||||
|
information if tray state didn't change
|
||||||
|
Content-type: text/plain
|
||||||
|
|
||||||
|
Commit 5ef2582646eb98 added emitting of even when refreshign disk state,
|
||||||
|
where it wanted to avoid sending the event if disk state didn't change.
|
||||||
|
This was achieved by using 'continue' in the loop filling the
|
||||||
|
information. Unfortunately this skips extraction of whether the device
|
||||||
|
has a tray which is propagated into internal structures, which in turn
|
||||||
|
broke cdrom media change as the code thought there's no tray for the
|
||||||
|
device.
|
||||||
|
|
||||||
|
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2166411
|
||||||
|
Fixes: 5ef2582646eb98af208ce37355f82bdef39931fa
|
||||||
|
Signed-off-by: Peter Krempa <pkrempa@redhat.com>
|
||||||
|
Reviewed-by: Kristina Hanicova <khanicov@redhat.com>
|
||||||
|
(cherry picked from commit 86cfe93ef7fdc2d665a2fc88b79af89e7978ba78)
|
||||||
|
---
|
||||||
|
src/qemu/qemu_process.c | 11 +++++------
|
||||||
|
1 file changed, 5 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
|
||||||
|
index ee9f0784d3..0c408ee547 100644
|
||||||
|
--- a/src/qemu/qemu_process.c
|
||||||
|
+++ b/src/qemu/qemu_process.c
|
||||||
|
@@ -8724,16 +8724,13 @@ qemuProcessRefreshDisks(virDomainObj *vm,
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if (info->removable) {
|
||||||
|
- virObjectEvent *event = NULL;
|
||||||
|
+ bool emitEvent = info->tray_open != disk->tray_status;
|
||||||
|
int reason;
|
||||||
|
|
||||||
|
if (info->empty)
|
||||||
|
virDomainDiskEmptySource(disk);
|
||||||
|
|
||||||
|
if (info->tray) {
|
||||||
|
- if (info->tray_open == disk->tray_status)
|
||||||
|
- continue;
|
||||||
|
-
|
||||||
|
if (info->tray_open) {
|
||||||
|
reason = VIR_DOMAIN_EVENT_TRAY_CHANGE_OPEN;
|
||||||
|
disk->tray_status = VIR_DOMAIN_DISK_TRAY_OPEN;
|
||||||
|
@@ -8742,8 +8739,10 @@ qemuProcessRefreshDisks(virDomainObj *vm,
|
||||||
|
disk->tray_status = VIR_DOMAIN_DISK_TRAY_CLOSED;
|
||||||
|
}
|
||||||
|
|
||||||
|
- event = virDomainEventTrayChangeNewFromObj(vm, disk->info.alias, reason);
|
||||||
|
- virObjectEventStateQueue(driver->domainEventState, event);
|
||||||
|
+ if (emitEvent) {
|
||||||
|
+ virObjectEvent *event = virDomainEventTrayChangeNewFromObj(vm, disk->info.alias, reason);
|
||||||
|
+ virObjectEventStateQueue(driver->domainEventState, event);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
39
0002-ch-use-CURLOPT_UPLOAD-instead-of-CURLOPT_PUT.patch
Normal file
39
0002-ch-use-CURLOPT_UPLOAD-instead-of-CURLOPT_PUT.patch
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
From: =?UTF-8?q?Daniel=20P=2E=20Berrang=C3=A9?= <berrange@redhat.com>
|
||||||
|
Date: Wed, 18 Jan 2023 09:45:52 +0000
|
||||||
|
Subject: [PATCH] ch: use CURLOPT_UPLOAD instead of CURLOPT_PUT
|
||||||
|
MIME-Version: 1.0
|
||||||
|
Content-Type: text/plain; charset=UTF-8
|
||||||
|
Content-Transfer-Encoding: 8bit
|
||||||
|
Content-type: text/plain
|
||||||
|
|
||||||
|
The CURLOPT_PUT constant causes a deprecation warning when compiling on
|
||||||
|
Alpine Edge. The docs indicate it is deprecated since 7.2.1
|
||||||
|
|
||||||
|
https://curl.se/libcurl/c/CURLOPT_PUT.html
|
||||||
|
|
||||||
|
Since 7.87 the deprecation is now exposed at build time via a compiler
|
||||||
|
warning.
|
||||||
|
|
||||||
|
We already use CURLOPT_UPLOAD in the ESX driver, so this brings the CH
|
||||||
|
driver into line.
|
||||||
|
|
||||||
|
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
|
||||||
|
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
|
||||||
|
(cherry picked from commit 9cd70fb25cad171e415fb05a4e01f244304c602e)
|
||||||
|
---
|
||||||
|
src/ch/ch_monitor.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/src/ch/ch_monitor.c b/src/ch/ch_monitor.c
|
||||||
|
index 8d8654332f..7b8f0a8077 100644
|
||||||
|
--- a/src/ch/ch_monitor.c
|
||||||
|
+++ b/src/ch/ch_monitor.c
|
||||||
|
@@ -660,7 +660,7 @@ virCHMonitorPutNoContent(virCHMonitor *mon, const char *endpoint)
|
||||||
|
|
||||||
|
curl_easy_setopt(mon->handle, CURLOPT_UNIX_SOCKET_PATH, mon->socketpath);
|
||||||
|
curl_easy_setopt(mon->handle, CURLOPT_URL, url);
|
||||||
|
- curl_easy_setopt(mon->handle, CURLOPT_PUT, true);
|
||||||
|
+ curl_easy_setopt(mon->handle, CURLOPT_UPLOAD, 1L);
|
||||||
|
curl_easy_setopt(mon->handle, CURLOPT_HTTPHEADER, NULL);
|
||||||
|
|
||||||
|
responseCode = virCHMonitorCurlPerform(mon->handle);
|
11
libvirt.spec
11
libvirt.spec
@ -229,7 +229,7 @@
|
|||||||
Summary: Library providing a simple virtualization API
|
Summary: Library providing a simple virtualization API
|
||||||
Name: libvirt
|
Name: libvirt
|
||||||
Version: 9.0.0
|
Version: 9.0.0
|
||||||
Release: 2%{?dist}
|
Release: 3%{?dist}
|
||||||
License: LGPLv2+
|
License: LGPLv2+
|
||||||
URL: https://libvirt.org/
|
URL: https://libvirt.org/
|
||||||
|
|
||||||
@ -238,6 +238,11 @@ URL: https://libvirt.org/
|
|||||||
%endif
|
%endif
|
||||||
Source: https://libvirt.org/sources/%{?mainturl}libvirt-%{version}.tar.xz
|
Source: https://libvirt.org/sources/%{?mainturl}libvirt-%{version}.tar.xz
|
||||||
|
|
||||||
|
# Fix 'Tray of device is not open' error when changing CDROM (bz #2163117)
|
||||||
|
Patch0001: 0001-qemuProcessRefreshDisks-Don-t-skip-filling-of-disk-i.patch
|
||||||
|
# Fix curl API deprecation error
|
||||||
|
Patch0002: 0002-ch-use-CURLOPT_UPLOAD-instead-of-CURLOPT_PUT.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}
|
||||||
Requires: libvirt-daemon-config-nwfilter = %{version}-%{release}
|
Requires: libvirt-daemon-config-nwfilter = %{version}-%{release}
|
||||||
@ -2310,6 +2315,10 @@ exit 0
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Sun May 07 2023 Cole Robinson <crobinso@redhat.com> - 9.0.0-3
|
||||||
|
- Fix 'Tray of device is not open' error when changing CDROM (bz #2163117)
|
||||||
|
- Fix curl API deprecation error
|
||||||
|
|
||||||
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 9.0.0-2
|
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 9.0.0-2
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user