Accepting request 263831 from Virtualization
- qemu: Fix crash in tunnelled migration 52691f99-qemu-mig-crash.patch boo#908008 OBS-URL: https://build.opensuse.org/request/show/263831 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libvirt?expand=0&rev=165
This commit is contained in:
commit
05ee2c1eef
@ -13,11 +13,11 @@ The changed command also works on older versions of iproute2, just the
|
|||||||
src/util/virnetdevveth.c | 4 ++--
|
src/util/virnetdevveth.c | 4 ++--
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/util/virnetdevveth.c b/src/util/virnetdevveth.c
|
Index: libvirt-1.2.10/src/util/virnetdevveth.c
|
||||||
index e9d6f9c..ad30e1d 100644
|
===================================================================
|
||||||
--- a/src/util/virnetdevveth.c
|
--- libvirt-1.2.10.orig/src/util/virnetdevveth.c
|
||||||
+++ b/src/util/virnetdevveth.c
|
+++ libvirt-1.2.10/src/util/virnetdevveth.c
|
||||||
@@ -89,7 +89,7 @@ static int virNetDevVethGetFreeNum(int startDev)
|
@@ -89,7 +89,7 @@ static int virNetDevVethGetFreeNum(int s
|
||||||
* @veth2: pointer to return name for container end of veth pair
|
* @veth2: pointer to return name for container end of veth pair
|
||||||
*
|
*
|
||||||
* Creates a veth device pair using the ip command:
|
* Creates a veth device pair using the ip command:
|
||||||
@ -26,7 +26,7 @@ index e9d6f9c..ad30e1d 100644
|
|||||||
* If veth1 points to NULL on entry, it will be a valid interface on
|
* If veth1 points to NULL on entry, it will be a valid interface on
|
||||||
* return. veth2 should point to NULL on entry.
|
* return. veth2 should point to NULL on entry.
|
||||||
*
|
*
|
||||||
@@ -146,7 +146,7 @@ int virNetDevVethCreate(char** veth1, char** veth2)
|
@@ -146,7 +146,7 @@ int virNetDevVethCreate(char** veth1, ch
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd = virCommandNew("ip");
|
cmd = virCommandNew("ip");
|
||||||
@ -35,6 +35,3 @@ index e9d6f9c..ad30e1d 100644
|
|||||||
*veth1 ? *veth1 : veth1auto,
|
*veth1 ? *veth1 : veth1auto,
|
||||||
"type", "veth", "peer", "name",
|
"type", "veth", "peer", "name",
|
||||||
*veth2 ? *veth2 : veth2auto,
|
*veth2 ? *veth2 : veth2auto,
|
||||||
--
|
|
||||||
2.1.2
|
|
||||||
|
|
||||||
|
29
52691f99-qemu-mig-crash.patch
Normal file
29
52691f99-qemu-mig-crash.patch
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
commit 52691f99fa016ac46c9546c37706e57a5180d4c6
|
||||||
|
Author: Jiri Denemark <jdenemar@redhat.com>
|
||||||
|
Date: Thu Nov 20 13:09:16 2014 +0100
|
||||||
|
|
||||||
|
qemu: Fix crash in tunnelled migration
|
||||||
|
|
||||||
|
Any attempt to start a tunnelled migration with libvirtd that supports
|
||||||
|
RDMA migration (specifically commit v1.2.8-226-ged22a47) crashes
|
||||||
|
libvirtd on the destination host.
|
||||||
|
|
||||||
|
The crash is inevitable because qemuMigrationPrepareAny is always called
|
||||||
|
with NULL protocol in case of tunnelled migration.
|
||||||
|
|
||||||
|
https://bugzilla.redhat.com/show_bug.cgi?id=1147331
|
||||||
|
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
||||||
|
|
||||||
|
Index: libvirt-1.2.10/src/qemu/qemu_migration.c
|
||||||
|
===================================================================
|
||||||
|
--- libvirt-1.2.10.orig/src/qemu/qemu_migration.c
|
||||||
|
+++ libvirt-1.2.10/src/qemu/qemu_migration.c
|
||||||
|
@@ -2688,7 +2688,7 @@ qemuMigrationPrepareAny(virQEMUDriverPtr
|
||||||
|
QEMU_MIGRATION_COOKIE_NBD)))
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
- if (STREQ(protocol, "rdma") && !vm->def->mem.hard_limit) {
|
||||||
|
+ if (STREQ_NULLABLE(protocol, "rdma") && !vm->def->mem.hard_limit) {
|
||||||
|
virReportError(VIR_ERR_OPERATION_INVALID, "%s",
|
||||||
|
_("cannot start RDMA migration with no memory hard "
|
||||||
|
"limit set"));
|
@ -17,11 +17,11 @@ two passes:
|
|||||||
src/lxc/lxc_container.c | 77 ++++++++++++++++++++++++++++++++++---------------
|
src/lxc/lxc_container.c | 77 ++++++++++++++++++++++++++++++++++---------------
|
||||||
2 files changed, 54 insertions(+), 24 deletions(-)
|
2 files changed, 54 insertions(+), 24 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
|
Index: libvirt-1.2.10/src/conf/domain_conf.h
|
||||||
index d428451..dcb30bc 100644
|
===================================================================
|
||||||
--- a/src/conf/domain_conf.h
|
--- libvirt-1.2.10.orig/src/conf/domain_conf.h
|
||||||
+++ b/src/conf/domain_conf.h
|
+++ libvirt-1.2.10/src/conf/domain_conf.h
|
||||||
@@ -821,6 +821,7 @@ struct _virDomainFSDef {
|
@@ -814,6 +814,7 @@ struct _virDomainFSDef {
|
||||||
virDomainDeviceInfo info;
|
virDomainDeviceInfo info;
|
||||||
unsigned long long space_hard_limit; /* in bytes */
|
unsigned long long space_hard_limit; /* in bytes */
|
||||||
unsigned long long space_soft_limit; /* in bytes */
|
unsigned long long space_soft_limit; /* in bytes */
|
||||||
@ -29,11 +29,11 @@ index d428451..dcb30bc 100644
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c
|
Index: libvirt-1.2.10/src/lxc/lxc_container.c
|
||||||
index db823d6..12f3a41 100644
|
===================================================================
|
||||||
--- a/src/lxc/lxc_container.c
|
--- libvirt-1.2.10.orig/src/lxc/lxc_container.c
|
||||||
+++ b/src/lxc/lxc_container.c
|
+++ libvirt-1.2.10/src/lxc/lxc_container.c
|
||||||
@@ -608,6 +608,48 @@ static int lxcContainerUnmountSubtree(const char *prefix,
|
@@ -609,6 +609,48 @@ static int lxcContainerUnmountSubtree(co
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -82,7 +82,7 @@ index db823d6..12f3a41 100644
|
|||||||
|
|
||||||
static int lxcContainerPrepareRoot(virDomainDefPtr def,
|
static int lxcContainerPrepareRoot(virDomainDefPtr def,
|
||||||
virDomainFSDefPtr root,
|
virDomainFSDefPtr root,
|
||||||
@@ -634,6 +676,9 @@ static int lxcContainerPrepareRoot(virDomainDefPtr def,
|
@@ -635,6 +677,9 @@ static int lxcContainerPrepareRoot(virDo
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -92,7 +92,7 @@ index db823d6..12f3a41 100644
|
|||||||
if (virAsprintf(&dst, "%s/%s.root",
|
if (virAsprintf(&dst, "%s/%s.root",
|
||||||
LXC_STATE_DIR, def->name) < 0)
|
LXC_STATE_DIR, def->name) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
@@ -1552,6 +1597,9 @@ static int lxcContainerMountAllFS(virDomainDefPtr vmDef,
|
@@ -1555,6 +1600,9 @@ static int lxcContainerMountAllFS(virDom
|
||||||
if (STREQ(vmDef->fss[i]->dst, "/"))
|
if (STREQ(vmDef->fss[i]->dst, "/"))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -102,7 +102,7 @@ index db823d6..12f3a41 100644
|
|||||||
if (lxcContainerUnmountSubtree(vmDef->fss[i]->dst,
|
if (lxcContainerUnmountSubtree(vmDef->fss[i]->dst,
|
||||||
false) < 0)
|
false) < 0)
|
||||||
return -1;
|
return -1;
|
||||||
@@ -1735,37 +1783,18 @@ static int lxcContainerSetupPivotRoot(virDomainDefPtr vmDef,
|
@@ -1738,37 +1786,18 @@ static int lxcContainerSetupPivotRoot(vi
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -144,7 +144,7 @@ index db823d6..12f3a41 100644
|
|||||||
}
|
}
|
||||||
VIR_DEBUG("Resolved all filesystem symlinks");
|
VIR_DEBUG("Resolved all filesystem symlinks");
|
||||||
|
|
||||||
@@ -2106,7 +2135,7 @@ static int lxcContainerChild(void *data)
|
@@ -2107,7 +2136,7 @@ static int lxcContainerChild(void *data)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -153,6 +153,3 @@ index db823d6..12f3a41 100644
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
VIR_DEBUG("Setting up pivot");
|
VIR_DEBUG("Setting up pivot");
|
||||||
--
|
|
||||||
2.1.2
|
|
||||||
|
|
||||||
|
@ -10,11 +10,11 @@ needs not to choke on path in /etc/libvirt-sandbox/services.
|
|||||||
src/security/virt-aa-helper.c | 3 ++-
|
src/security/virt-aa-helper.c | 3 ++-
|
||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c
|
Index: libvirt-1.2.10/src/security/virt-aa-helper.c
|
||||||
index 81f9f40..f273e09 100644
|
===================================================================
|
||||||
--- a/src/security/virt-aa-helper.c
|
--- libvirt-1.2.10.orig/src/security/virt-aa-helper.c
|
||||||
+++ b/src/security/virt-aa-helper.c
|
+++ libvirt-1.2.10/src/security/virt-aa-helper.c
|
||||||
@@ -571,7 +571,8 @@ valid_path(const char *path, const bool readonly)
|
@@ -571,7 +571,8 @@ valid_path(const char *path, const bool
|
||||||
};
|
};
|
||||||
/* override the above with these */
|
/* override the above with these */
|
||||||
const char * const override[] = {
|
const char * const override[] = {
|
||||||
@ -24,6 +24,3 @@ index 81f9f40..f273e09 100644
|
|||||||
};
|
};
|
||||||
|
|
||||||
if (path == NULL) {
|
if (path == NULL) {
|
||||||
--
|
|
||||||
2.1.2
|
|
||||||
|
|
||||||
|
@ -18,11 +18,11 @@ loose the access to the source folder.
|
|||||||
src/lxc/lxc_container.c | 8 ++++++--
|
src/lxc/lxc_container.c | 8 ++++++--
|
||||||
1 file changed, 6 insertions(+), 2 deletions(-)
|
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c
|
Index: libvirt-1.2.10/src/lxc/lxc_container.c
|
||||||
index 12f3a41..334a1df 100644
|
===================================================================
|
||||||
--- a/src/lxc/lxc_container.c
|
--- libvirt-1.2.10.orig/src/lxc/lxc_container.c
|
||||||
+++ b/src/lxc/lxc_container.c
|
+++ libvirt-1.2.10/src/lxc/lxc_container.c
|
||||||
@@ -1597,11 +1597,15 @@ static int lxcContainerMountAllFS(virDomainDefPtr vmDef,
|
@@ -1600,11 +1600,15 @@ static int lxcContainerMountAllFS(virDom
|
||||||
if (STREQ(vmDef->fss[i]->dst, "/"))
|
if (STREQ(vmDef->fss[i]->dst, "/"))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -40,6 +40,3 @@ index 12f3a41..334a1df 100644
|
|||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (lxcContainerMountFS(vmDef->fss[i], sec_mount_options) < 0)
|
if (lxcContainerMountFS(vmDef->fss[i], sec_mount_options) < 0)
|
||||||
--
|
|
||||||
2.1.2
|
|
||||||
|
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Dec 3 05:01:13 MST 2014 - jfehlig@suse.com
|
||||||
|
|
||||||
|
- qemu: Fix crash in tunnelled migration
|
||||||
|
52691f99-qemu-mig-crash.patch
|
||||||
|
boo#908008
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Nov 20 11:56:16 UTC 2014 - cbosdonnat@suse.com
|
Thu Nov 20 11:56:16 UTC 2014 - cbosdonnat@suse.com
|
||||||
|
|
||||||
|
@ -440,6 +440,7 @@ Patch2: c264eea-virt-aa-helper-sandbox.patch
|
|||||||
Patch3: 433b427-iplink-name.patch
|
Patch3: 433b427-iplink-name.patch
|
||||||
Patch4: 72fecf1-lxc-resolve-symlinks.patch
|
Patch4: 72fecf1-lxc-resolve-symlinks.patch
|
||||||
Patch5: e50457d-lxc-unmount-check.patch
|
Patch5: e50457d-lxc-unmount-check.patch
|
||||||
|
Patch6: 52691f99-qemu-mig-crash.patch
|
||||||
# Patches pending upstream review
|
# Patches pending upstream review
|
||||||
# Need to go upstream
|
# Need to go upstream
|
||||||
Patch150: xen-name-for-devid.patch
|
Patch150: xen-name-for-devid.patch
|
||||||
@ -978,6 +979,7 @@ Provides a dissector for the libvirt RPC protocol to help debugging it.
|
|||||||
%patch3 -p1
|
%patch3 -p1
|
||||||
%patch4 -p1
|
%patch4 -p1
|
||||||
%patch5 -p1
|
%patch5 -p1
|
||||||
|
%patch6 -p1
|
||||||
%patch150 -p1
|
%patch150 -p1
|
||||||
%patch151 -p1
|
%patch151 -p1
|
||||||
%patch152 -p1
|
%patch152 -p1
|
||||||
|
Loading…
Reference in New Issue
Block a user