- Update to the latest Xen 4.7 pre-release f3a7ca02 (fate#319989)
Drop libxl.migrate-legacy-stream-read.patch OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=420
This commit is contained in:
parent
b35f1092d6
commit
71a94eb539
@ -36,11 +36,11 @@ Index: xen-4.7.0-testing/tools/libxc/include/xc_dom.h
|
|||||||
- /* ("xEn3" with the 0x80 bit of the "E" set).*/
|
- /* ("xEn3" with the 0x80 bit of the "E" set).*/
|
||||||
- uint32_t version; /* Version of this structure. */
|
- uint32_t version; /* Version of this structure. */
|
||||||
- uint32_t flags; /* SIF_xxx flags. */
|
- uint32_t flags; /* SIF_xxx flags. */
|
||||||
- uint32_t cmdline_paddr; /* Physical address of the command line. */
|
|
||||||
- uint32_t nr_modules; /* Number of modules passed to the kernel. */
|
- uint32_t nr_modules; /* Number of modules passed to the kernel. */
|
||||||
- uint32_t modlist_paddr; /* Physical address of an array of */
|
- uint64_t modlist_paddr; /* Physical address of an array of */
|
||||||
- /* hvm_modlist_entry. */
|
- /* hvm_modlist_entry. */
|
||||||
- uint32_t rsdp_paddr; /* Physical address of the RSDP ACPI data */
|
- uint64_t cmdline_paddr; /* Physical address of the command line. */
|
||||||
|
- uint64_t rsdp_paddr; /* Physical address of the RSDP ACPI data */
|
||||||
- /* structure. */
|
- /* structure. */
|
||||||
-} __attribute__((packed));
|
-} __attribute__((packed));
|
||||||
-
|
-
|
||||||
@ -59,7 +59,7 @@ Index: xen-4.7.0-testing/xen/include/public/xen.h
|
|||||||
===================================================================
|
===================================================================
|
||||||
--- xen-4.7.0-testing.orig/xen/include/public/xen.h
|
--- xen-4.7.0-testing.orig/xen/include/public/xen.h
|
||||||
+++ xen-4.7.0-testing/xen/include/public/xen.h
|
+++ xen-4.7.0-testing/xen/include/public/xen.h
|
||||||
@@ -858,6 +858,37 @@ typedef struct start_info start_info_t;
|
@@ -860,6 +860,37 @@ typedef struct start_info start_info_t;
|
||||||
*/
|
*/
|
||||||
#define XEN_HVM_START_MAGIC_VALUE 0x336ec578
|
#define XEN_HVM_START_MAGIC_VALUE 0x336ec578
|
||||||
|
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:5bc1dcb1e3c4d80009ec4710ff153cd7e0ec792741ad31a5939d828683c9b6b7
|
oid sha256:d07d42c2aa44e6e424a9b01d8778b908e2994860e2a24bf3f3ec15adc85a3315
|
||||||
size 2877725
|
size 2877767
|
||||||
|
@ -1,101 +0,0 @@
|
|||||||
tools/libxl: Fix legacy migration following COLO backchannel breakage
|
|
||||||
|
|
||||||
c/s f5d947bf1b "tools/libxl: add back channel support to read stream"
|
|
||||||
made a bogus adjustment to libxl__stream_read_start(), including
|
|
||||||
removing the comment hinting at what was going on, which breaks
|
|
||||||
conversion of a legacy migration stream.
|
|
||||||
|
|
||||||
Symptoms look like:
|
|
||||||
|
|
||||||
root@anonymi:~ # xl migrate domU host
|
|
||||||
migration target: Ready to receive domain.
|
|
||||||
Saving to migration stream new xl format (info 0x1/0x0/2677)
|
|
||||||
xc: error: error polling suspend notification channel: -1: Internal error
|
|
||||||
Loading new save file <incoming migration stream> (new xl fmt info 0x1/0x0/2677)
|
|
||||||
Savefile contains xl domain config in JSON format
|
|
||||||
Parsing config from <saved>
|
|
||||||
libxl: error: libxl_stream_read.c:327:stream_header_done: Invalid ident: expected 0x4c6962786c466d74, got 0x01f00f0000000000
|
|
||||||
libxl: error: libxl_utils.c:430:libxl_read_exactly: file/stream truncated reading ipc msg header from domain 1 save/restore helper stdout pipe
|
|
||||||
|
|
||||||
The adjustment is not required for backchannel support (as there is no
|
|
||||||
interaction between back channels and legacy conversion), and caused
|
|
||||||
stream->fd to be latched in the datacopier before legacy conversion
|
|
||||||
substitutes it for the fd which is the output of the conversion script.
|
|
||||||
|
|
||||||
This causes libxl to consume data from the legacy stream rather than the
|
|
||||||
v2 stream, and for the conversion script to encounter an error as the
|
|
||||||
legacy stream appears to skip ahead.
|
|
||||||
|
|
||||||
Undo the adjustments to libxl__stream_read_start(), and introduce a
|
|
||||||
better description of what is going on. Introduce some extra assertions
|
|
||||||
to try and catch similar breakage in the future.
|
|
||||||
|
|
||||||
Reported-by: Olaf Hering <olaf@aepfle.de>
|
|
||||||
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
|
|
||||||
---
|
|
||||||
CC: Ian Jackson <Ian.Jackson@eu.citrix.com>
|
|
||||||
CC: Wei Liu <wei.liu2@citrix.com>
|
|
||||||
CC: Olaf Hering <olaf@aepfle.de>
|
|
||||||
CC: Yang Hongyang <hongyang.yang@easystack.cn>
|
|
||||||
CC: Wen Congyang <wency@cn.fujitsu.com>
|
|
||||||
CC: Changlong Xie <xiecl.fnst@cn.fujitsu.com>
|
|
||||||
---
|
|
||||||
tools/libxl/libxl_stream_read.c | 33 ++++++++++++++++++++++++---------
|
|
||||||
1 file changed, 24 insertions(+), 9 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/tools/libxl/libxl_stream_read.c b/tools/libxl/libxl_stream_read.c
|
|
||||||
index 9659051..89c2f21 100644
|
|
||||||
--- a/tools/libxl/libxl_stream_read.c
|
|
||||||
+++ b/tools/libxl/libxl_stream_read.c
|
|
||||||
@@ -234,16 +234,16 @@ void libxl__stream_read_start(libxl__egc *egc,
|
|
||||||
stream->running = true;
|
|
||||||
stream->phase = SRS_PHASE_NORMAL;
|
|
||||||
|
|
||||||
- dc->ao = stream->ao;
|
|
||||||
- dc->copywhat = "restore v2 stream";
|
|
||||||
- dc->readfd = stream->fd;
|
|
||||||
- dc->writefd = -1;
|
|
||||||
-
|
|
||||||
- if (stream->back_channel)
|
|
||||||
- return;
|
|
||||||
-
|
|
||||||
if (stream->legacy) {
|
|
||||||
- /* Convert the legacy stream. */
|
|
||||||
+ /*
|
|
||||||
+ * Convert the legacy stream.
|
|
||||||
+ *
|
|
||||||
+ * This results in a fork()/exec() of conversion helper script. It is
|
|
||||||
+ * passed the exiting stream->fd as an input, and returns the
|
|
||||||
+ * transformed stream via a new pipe. The fd of this new pipe then
|
|
||||||
+ * replaces stream->fd, to make the rest of the stream read code
|
|
||||||
+ * agnostic to whether legacy conversion is happening or not.
|
|
||||||
+ */
|
|
||||||
libxl__conversion_helper_state *chs = &stream->chs;
|
|
||||||
|
|
||||||
chs->legacy_fd = stream->fd;
|
|
||||||
@@ -258,10 +258,25 @@ void libxl__stream_read_start(libxl__egc *egc,
|
|
||||||
goto err;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ /* There should be no interaction of COLO backchannels and legacy
|
|
||||||
+ * stream conversion. */
|
|
||||||
+ assert(!stream->back_channel);
|
|
||||||
+
|
|
||||||
+ /* Confirm *dc is still zeroed out, while we shuffle stream->fd. */
|
|
||||||
+ assert(dc->ao == NULL);
|
|
||||||
assert(stream->chs.v2_carefd);
|
|
||||||
stream->fd = libxl__carefd_fd(stream->chs.v2_carefd);
|
|
||||||
stream->dcs->libxc_fd = stream->fd;
|
|
||||||
}
|
|
||||||
+ /* stream->fd is now a v2 stream. */
|
|
||||||
+
|
|
||||||
+ dc->ao = stream->ao;
|
|
||||||
+ dc->copywhat = "restore v2 stream";
|
|
||||||
+ dc->readfd = stream->fd;
|
|
||||||
+ dc->writefd = -1;
|
|
||||||
+
|
|
||||||
+ if (stream->back_channel)
|
|
||||||
+ return;
|
|
||||||
|
|
||||||
/* Start reading the stream header. */
|
|
||||||
rc = setup_read(stream, "stream header",
|
|
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:f2a417c47e301a3c5ed5ef50546e3c1d5eb08636cf407d851802c86bcf9f41c3
|
oid sha256:879d9d369e718cdb7b1dcda2b051609ca59f9c89e1ae1160bdedf19bf2914f72
|
||||||
size 256310
|
size 256337
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:941d427153a9d2bff090a23117ba43a0cb9f30dee252819edb7e967db07ccab0
|
oid sha256:cc6bd72f1447c6e9f3b864c12032b0b7a2462a7681c60501a8c0b77d03027467
|
||||||
size 3236120
|
size 3237713
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:e6879a00cce1f705fa881fa38c707773f03c35e0dc30d5728e3f095157a6bc24
|
oid sha256:2a6caced4968291b7097ad760f463d5631d03d3633c63a4b0d80e0f7a480c16d
|
||||||
size 17477288
|
size 17477537
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:458f600be1d287e71fd349df83b3f4c47dd8fff9ecc0f770509434ce7f5511cb
|
oid sha256:3aaa35be2550c1e78a73651d033abb954e0322688467f2fa0c37a7c2abf829bd
|
||||||
size 4409813
|
size 4409531
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Mon Apr 18 11:03:33 MDT 2016 - carnold@suse.com
|
||||||
|
|
||||||
|
- Update to the latest Xen 4.7 pre-release f3a7ca02 (fate#319989)
|
||||||
|
Drop libxl.migrate-legacy-stream-read.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri Apr 15 09:22:31 UTC 2016 - ohering@suse.de
|
Fri Apr 15 09:22:31 UTC 2016 - ohering@suse.de
|
||||||
|
|
||||||
|
4
xen.spec
4
xen.spec
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package xen
|
# spec file for package xen
|
||||||
#
|
#
|
||||||
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
|
# Copyright (c) 2016 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
||||||
#
|
#
|
||||||
# All modifications and additions to the file contributed by third parties
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# remain the property of their copyright owners, unless otherwise agreed
|
||||||
@ -198,7 +198,6 @@ Source57: xen-utils-0.1.tar.bz2
|
|||||||
# For xen-libs
|
# For xen-libs
|
||||||
Source99: baselibs.conf
|
Source99: baselibs.conf
|
||||||
# Upstream patches
|
# Upstream patches
|
||||||
Patch0: libxl.migrate-legacy-stream-read.patch
|
|
||||||
Patch164: xsa164.patch
|
Patch164: xsa164.patch
|
||||||
# Upstream qemu-traditional patches
|
# Upstream qemu-traditional patches
|
||||||
Patch250: VNC-Support-for-ExtendedKeyEvent-client-message.patch
|
Patch250: VNC-Support-for-ExtendedKeyEvent-client-message.patch
|
||||||
@ -515,7 +514,6 @@ Authors:
|
|||||||
%prep
|
%prep
|
||||||
%setup -q -n %xen_build_dir -a 1 -a 2 -a 5 -a 6 -a 57
|
%setup -q -n %xen_build_dir -a 1 -a 2 -a 5 -a 6 -a 57
|
||||||
# Upstream patches
|
# Upstream patches
|
||||||
%patch0 -p1
|
|
||||||
%patch164 -p1
|
%patch164 -p1
|
||||||
# Upstream qemu patches
|
# Upstream qemu patches
|
||||||
%patch250 -p1
|
%patch250 -p1
|
||||||
|
Loading…
x
Reference in New Issue
Block a user