* Fri Mar 15 2019 Danilo Cesar Lemes de Paula <ddepaula@redhat.com> - 3.1.0-19.el8
- kvm-migration-Fix-cancel-state.patch [bz#1608649] - kvm-migration-rdma-Fix-qemu_rdma_cleanup-null-check.patch [bz#1608649] - Resolves: bz#1608649 (Query-migrate get "failed" status after migrate-cancel)
This commit is contained in:
parent
5a65f82232
commit
b1acd1afc1
75
kvm-migration-Fix-cancel-state.patch
Normal file
75
kvm-migration-Fix-cancel-state.patch
Normal file
@ -0,0 +1,75 @@
|
||||
From 31566a415b69d58fdf09f05e362685fcc3aee00b Mon Sep 17 00:00:00 2001
|
||||
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
|
||||
Date: Thu, 7 Mar 2019 12:26:21 +0000
|
||||
Subject: [PATCH 1/2] migration: Fix cancel state
|
||||
|
||||
RH-Author: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
Message-id: <20190307122622.9387-2-dgilbert@redhat.com>
|
||||
Patchwork-id: 84820
|
||||
O-Subject: [RHEL-8.0 qemu-kvm AV PATCH 1/2] migration: Fix cancel state
|
||||
Bugzilla: 1608649
|
||||
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Pankaj Gupta <pagupta@redhat.com>
|
||||
|
||||
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
|
||||
|
||||
During a cancelled migration there's a race where the fd can
|
||||
go into an error state before we get back around the migration loop
|
||||
and migration_detect_error transitions from cancelling->failed.
|
||||
|
||||
Check for cancelled/cancelling and don't change the state.
|
||||
|
||||
Red Hat bug: https://bugzilla.redhat.com/show_bug.cgi?id=1608649
|
||||
|
||||
Fixes: b23c2ade250
|
||||
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
Message-Id: <20190219195928.12289-1-dgilbert@redhat.com>
|
||||
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
Reviewed-by: Peter Xu <peterx@redhat.com>
|
||||
Reviewed-by: Juan Quintela <quintela@redhat.com>
|
||||
(cherry picked from commit c3c5eae6ac69d9f7d4618407aa6c8ac5edc2267c)
|
||||
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
||||
---
|
||||
migration/migration.c | 11 +++++++++--
|
||||
1 file changed, 9 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/migration/migration.c b/migration/migration.c
|
||||
index 0d9cb7a..ecdf01d 100644
|
||||
--- a/migration/migration.c
|
||||
+++ b/migration/migration.c
|
||||
@@ -2824,6 +2824,13 @@ static MigThrError postcopy_pause(MigrationState *s)
|
||||
static MigThrError migration_detect_error(MigrationState *s)
|
||||
{
|
||||
int ret;
|
||||
+ int state = s->state;
|
||||
+
|
||||
+ if (state == MIGRATION_STATUS_CANCELLING ||
|
||||
+ state == MIGRATION_STATUS_CANCELLED) {
|
||||
+ /* End the migration, but don't set the state to failed */
|
||||
+ return MIG_THR_ERR_FATAL;
|
||||
+ }
|
||||
|
||||
/* Try to detect any file errors */
|
||||
ret = qemu_file_get_error(s->to_dst_file);
|
||||
@@ -2833,7 +2840,7 @@ static MigThrError migration_detect_error(MigrationState *s)
|
||||
return MIG_THR_ERR_NONE;
|
||||
}
|
||||
|
||||
- if (s->state == MIGRATION_STATUS_POSTCOPY_ACTIVE && ret == -EIO) {
|
||||
+ if (state == MIGRATION_STATUS_POSTCOPY_ACTIVE && ret == -EIO) {
|
||||
/*
|
||||
* For postcopy, we allow the network to be down for a
|
||||
* while. After that, it can be continued by a
|
||||
@@ -2845,7 +2852,7 @@ static MigThrError migration_detect_error(MigrationState *s)
|
||||
* For precopy (or postcopy with error outside IO), we fail
|
||||
* with no time.
|
||||
*/
|
||||
- migrate_set_state(&s->state, s->state, MIGRATION_STATUS_FAILED);
|
||||
+ migrate_set_state(&s->state, state, MIGRATION_STATUS_FAILED);
|
||||
trace_migration_thread_file_err();
|
||||
|
||||
/* Time to stop the migration, now. */
|
||||
--
|
||||
1.8.3.1
|
||||
|
54
kvm-migration-rdma-Fix-qemu_rdma_cleanup-null-check.patch
Normal file
54
kvm-migration-rdma-Fix-qemu_rdma_cleanup-null-check.patch
Normal file
@ -0,0 +1,54 @@
|
||||
From aa5367b5e81cdc3cc3dc8dbc31daef6acecc1f97 Mon Sep 17 00:00:00 2001
|
||||
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
|
||||
Date: Thu, 7 Mar 2019 12:26:22 +0000
|
||||
Subject: [PATCH 2/2] migration/rdma: Fix qemu_rdma_cleanup null check
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
RH-Author: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
Message-id: <20190307122622.9387-3-dgilbert@redhat.com>
|
||||
Patchwork-id: 84819
|
||||
O-Subject: [RHEL-8.0 qemu-kvm AV PATCH 2/2] migration/rdma: Fix qemu_rdma_cleanup null check
|
||||
Bugzilla: 1608649
|
||||
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
|
||||
RH-Acked-by: Peter Xu <peterx@redhat.com>
|
||||
RH-Acked-by: Pankaj Gupta <pagupta@redhat.com>
|
||||
|
||||
From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
|
||||
|
||||
If the migration fails before the channel is open (e.g. a bad
|
||||
address) we end up in the cleanup with rdma->channel==NULL.
|
||||
|
||||
Spotted by Coverity: CID 1398634
|
||||
Fixes: fbbaacab2758cb3f32a0
|
||||
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
Message-Id: <20190214185351.5927-1-dgilbert@redhat.com>
|
||||
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
|
||||
Reviewed-by: Peter Xu <peterx@redhat.com>
|
||||
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
|
||||
(cherry picked from commit cf75e2684938413f0bbe95f5a4b7db5c845e42c8)
|
||||
|
||||
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
|
||||
---
|
||||
migration/rdma.c | 4 +++-
|
||||
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/migration/rdma.c b/migration/rdma.c
|
||||
index 54a3c11..9fa3b17 100644
|
||||
--- a/migration/rdma.c
|
||||
+++ b/migration/rdma.c
|
||||
@@ -2321,7 +2321,9 @@ static void qemu_rdma_cleanup(RDMAContext *rdma)
|
||||
rdma->connected = false;
|
||||
}
|
||||
|
||||
- qemu_set_fd_handler(rdma->channel->fd, NULL, NULL, NULL);
|
||||
+ if (rdma->channel) {
|
||||
+ qemu_set_fd_handler(rdma->channel->fd, NULL, NULL, NULL);
|
||||
+ }
|
||||
g_free(rdma->dest_blocks);
|
||||
rdma->dest_blocks = NULL;
|
||||
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -68,7 +68,7 @@ Obsoletes: %1-rhev
|
||||
Summary: QEMU is a machine emulator and virtualizer
|
||||
Name: qemu-kvm
|
||||
Version: 3.1.0
|
||||
Release: 18%{?dist}
|
||||
Release: 19%{?dist}
|
||||
# Epoch because we pushed a qemu-1.0 package. AIUI this can't ever be dropped
|
||||
Epoch: 15
|
||||
License: GPLv2 and GPLv2+ and CC-BY
|
||||
@ -216,6 +216,10 @@ Patch64: kvm-i386-remove-the-new-CPUID-PCONFIG-from-Icelake-Serve.patch
|
||||
Patch65: kvm-i386-remove-the-INTEL_PT-CPUID-bit-from-named-CPU-mo.patch
|
||||
# For bz#1661515 - Remove PCONFIG and INTEL_PT from Icelake-* CPU models
|
||||
Patch66: kvm-Revert-i386-Add-CPUID-bit-for-PCONFIG.patch
|
||||
# For bz#1608649 - Query-migrate get "failed" status after migrate-cancel
|
||||
Patch67: kvm-migration-Fix-cancel-state.patch
|
||||
# For bz#1608649 - Query-migrate get "failed" status after migrate-cancel
|
||||
Patch68: kvm-migration-rdma-Fix-qemu_rdma_cleanup-null-check.patch
|
||||
|
||||
BuildRequires: zlib-devel
|
||||
BuildRequires: glib2-devel
|
||||
@ -1108,6 +1112,12 @@ useradd -r -u 107 -g qemu -G kvm -d / -s /sbin/nologin \
|
||||
|
||||
|
||||
%changelog
|
||||
* Fri Mar 15 2019 Danilo Cesar Lemes de Paula <ddepaula@redhat.com> - 3.1.0-19.el8
|
||||
- kvm-migration-Fix-cancel-state.patch [bz#1608649]
|
||||
- kvm-migration-rdma-Fix-qemu_rdma_cleanup-null-check.patch [bz#1608649]
|
||||
- Resolves: bz#1608649
|
||||
(Query-migrate get "failed" status after migrate-cancel)
|
||||
|
||||
* Tue Feb 26 2019 Danilo Cesar Lemes de Paula <ddepaula@redhat.com> - 3.1.0-18.el8
|
||||
- kvm-target-i386-Disable-MPX-support-on-named-CPU-models.patch [bz#1661030]
|
||||
- kvm-i386-remove-the-new-CPUID-PCONFIG-from-Icelake-Serve.patch [bz#1661515]
|
||||
|
Loading…
Reference in New Issue
Block a user