import qemu-kvm-6.2.0-22.module+el8.7.0+18170+646069c1.2
This commit is contained in:
parent
cb066cbf03
commit
bb332c3e0a
75
SOURCES/kvm-migration-Read-state-once.patch
Normal file
75
SOURCES/kvm-migration-Read-state-once.patch
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
From 70d9e1e5940c9680f574124fe8cc02e4ce97f790 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
|
||||||
|
Date: Wed, 13 Apr 2022 12:33:29 +0100
|
||||||
|
Subject: [PATCH] migration: Read state once
|
||||||
|
|
||||||
|
RH-Author: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||||
|
RH-MergeRequest: 252: migration: Read state once
|
||||||
|
RH-Bugzilla: 2168217
|
||||||
|
RH-Acked-by: Stefano Garzarella <sgarzare@redhat.com>
|
||||||
|
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||||
|
RH-Acked-by: quintela1 <quintela@redhat.com>
|
||||||
|
RH-Commit: [1/1] 3f707ccf62e5ac2973f7e8816c50cc48e0bd646c
|
||||||
|
|
||||||
|
The 'status' field for the migration is updated normally using
|
||||||
|
an atomic operation from the migration thread.
|
||||||
|
Most readers of it aren't that careful, and in most cases it doesn't
|
||||||
|
matter.
|
||||||
|
|
||||||
|
In query_migrate->fill_source_migration_info the 'state'
|
||||||
|
is read twice; the first time to decide which state fields to fill in,
|
||||||
|
and then secondly to copy the state to the status field; that can end up
|
||||||
|
with a status that's inconsistent; e.g. setting up the fields
|
||||||
|
for 'setup' and then having an 'active' status. In that case
|
||||||
|
libvirt gets upset by the lack of ram info.
|
||||||
|
The symptom is:
|
||||||
|
libvirt.libvirtError: internal error: migration was active, but no RAM info was set
|
||||||
|
|
||||||
|
Read the state exactly once in fill_source_migration_info.
|
||||||
|
|
||||||
|
This is a possible fix for:
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=2074205
|
||||||
|
|
||||||
|
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||||
|
Message-Id: <20220413113329.103696-1-dgilbert@redhat.com>
|
||||||
|
Reviewed-by: Juan Quintela <quintela@redhat.com>
|
||||||
|
Reviewed-by: Peter Xu <peterx@redhat.com>
|
||||||
|
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||||
|
(cherry picked from commit 552de79bfdd5e9e53847eb3c6d6e4cd898a4370e)
|
||||||
|
---
|
||||||
|
migration/migration.c | 5 +++--
|
||||||
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/migration/migration.c b/migration/migration.c
|
||||||
|
index 51e6726dac..d8b24a2c91 100644
|
||||||
|
--- a/migration/migration.c
|
||||||
|
+++ b/migration/migration.c
|
||||||
|
@@ -1071,6 +1071,7 @@ static void populate_disk_info(MigrationInfo *info)
|
||||||
|
static void fill_source_migration_info(MigrationInfo *info)
|
||||||
|
{
|
||||||
|
MigrationState *s = migrate_get_current();
|
||||||
|
+ int state = qatomic_read(&s->state);
|
||||||
|
GSList *cur_blocker = migration_blockers;
|
||||||
|
|
||||||
|
info->blocked_reasons = NULL;
|
||||||
|
@@ -1090,7 +1091,7 @@ static void fill_source_migration_info(MigrationInfo *info)
|
||||||
|
}
|
||||||
|
info->has_blocked_reasons = info->blocked_reasons != NULL;
|
||||||
|
|
||||||
|
- switch (s->state) {
|
||||||
|
+ switch (state) {
|
||||||
|
case MIGRATION_STATUS_NONE:
|
||||||
|
/* no migration has happened ever */
|
||||||
|
/* do not overwrite destination migration status */
|
||||||
|
@@ -1135,7 +1136,7 @@ static void fill_source_migration_info(MigrationInfo *info)
|
||||||
|
info->has_status = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
- info->status = s->state;
|
||||||
|
+ info->status = state;
|
||||||
|
}
|
||||||
|
|
||||||
|
typedef enum WriteTrackingSupport {
|
||||||
|
--
|
||||||
|
2.37.3
|
||||||
|
|
@ -83,7 +83,7 @@ Obsoletes: %1-rhev <= %{epoch}:%{version}-%{release}
|
|||||||
Summary: QEMU is a machine emulator and virtualizer
|
Summary: QEMU is a machine emulator and virtualizer
|
||||||
Name: qemu-kvm
|
Name: qemu-kvm
|
||||||
Version: 6.2.0
|
Version: 6.2.0
|
||||||
Release: 21%{?rcrel}%{?dist}.2
|
Release: 22%{?rcrel}%{?dist}.2
|
||||||
# Epoch because we pushed a qemu-1.0 package. AIUI this can't ever be dropped
|
# Epoch because we pushed a qemu-1.0 package. AIUI this can't ever be dropped
|
||||||
Epoch: 15
|
Epoch: 15
|
||||||
License: GPLv2 and GPLv2+ and CC-BY
|
License: GPLv2 and GPLv2+ and CC-BY
|
||||||
@ -445,6 +445,8 @@ Patch172: kvm-hw-display-qxl-Pass-requested-buffer-size-to-qxl_phy.patch
|
|||||||
Patch173: kvm-hw-display-qxl-Avoid-buffer-overrun-in-qxl_phys2virt.patch
|
Patch173: kvm-hw-display-qxl-Avoid-buffer-overrun-in-qxl_phys2virt.patch
|
||||||
# For bz#2152085 - CVE-2022-4144 virt:rhel/qemu-kvm: QEMU: QXL: qxl_phys2virt unsafe address translation can lead to out-of-bounds read [rhel-8] [rhel-8.7.0.z]
|
# For bz#2152085 - CVE-2022-4144 virt:rhel/qemu-kvm: QEMU: QXL: qxl_phys2virt unsafe address translation can lead to out-of-bounds read [rhel-8] [rhel-8.7.0.z]
|
||||||
Patch174: kvm-hw-display-qxl-Assert-memory-slot-fits-in-preallocat.patch
|
Patch174: kvm-hw-display-qxl-Assert-memory-slot-fits-in-preallocat.patch
|
||||||
|
# For bz#2168217 - while live-migrating many instances concurrently, libvirt sometimes return internal error: migration was active, but no RAM info was set [rhel-8.7.0.z]
|
||||||
|
Patch175: kvm-migration-Read-state-once.patch
|
||||||
|
|
||||||
BuildRequires: wget
|
BuildRequires: wget
|
||||||
BuildRequires: rpm-build
|
BuildRequires: rpm-build
|
||||||
@ -1614,6 +1616,11 @@ sh %{_sysconfdir}/sysconfig/modules/kvm.modules &> /dev/null || :
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Feb 14 2023 Jon Maloy <jmaloy@redhat.com> - 6.2.0-22.el8_7.2
|
||||||
|
- kvm-migration-Read-state-once.patch [bz#2168217]
|
||||||
|
- Resolves: bz#2168217
|
||||||
|
(while live-migrating many instances concurrently, libvirt sometimes return internal error: migration was active, but no RAM info was set [rhel-8.7.0.z])
|
||||||
|
|
||||||
* Thu Dec 15 2022 Jon Maloy <jmaloy@redhat.com> - 6.2.0-21.el8_7.2
|
* Thu Dec 15 2022 Jon Maloy <jmaloy@redhat.com> - 6.2.0-21.el8_7.2
|
||||||
- kvm-ui-vnc.c-Fixed-a-deadlock-bug.patch [bz#2148504]
|
- kvm-ui-vnc.c-Fixed-a-deadlock-bug.patch [bz#2148504]
|
||||||
- kvm-hw-display-qxl-Have-qxl_log_command-Return-early-if-.patch [bz#2152085]
|
- kvm-hw-display-qxl-Have-qxl_log_command-Return-early-if-.patch [bz#2152085]
|
||||||
|
Loading…
Reference in New Issue
Block a user