[Ubuntu 18.04] Backward migration of Ubuntu 16.04.4 P8 guest from Ubuntu 18.04 P9 Host -> Ubuntu 16.04.4 P8 host is broken
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
The Ubuntu-power-systems project |
Fix Released
|
High
|
Canonical Server | ||
qemu (Ubuntu) |
Fix Released
|
Undecided
|
Ubuntu on IBM Power Systems Bug Triage | ||
Bionic |
Fix Released
|
Undecided
|
Unassigned | ||
Cosmic |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
[Impact]
* Users migrating between 16.04 on power8 and 18.04 on poer9 can not
migrate back (the very same guest)
* IBM identified a set of qemu fixes that will make the migration work
as it is not impossible but mostly due to a misadvertisement in
features in the p8 compat mode.
[Test Case]
* Get two hosts:
- Ubuntu 16.04 on power8
- remember that on p8 you need to disable smt
$ ppc64_cpu --smt=off
- Ubuntu 18.04 on power9
* create the same guest on both
$ uvt-kvm create --password=ubuntu b-x release=bionic arch=ppc64el label=daily
Shut it down and undefine it on the 18.04 box (that is only to lay
out the files)
$ virsh shutdown b-x
$ virsh undefine b-x
* Shut down the guest on 16.04 and mark it as explcit p8 compat
in libvirt
<cpu mode='host-model'>
<model fallback=
</cpu>
* Backwards migration is a best-effort but not fully supported feature,
so --copy-storage-all won't work as there is a nbd issue between qemu
2.5/2.11, so you'll need shared storage
-> set up shared storage and modify the guest to use that
-> for the sake of simplifying testing you can use copy-storage-all
from X->B but not reverse (and ignore potential minor I/Os being
lost)
* Migrate the guest to the 18.04 host
$ virsh migrate --live --verbose b-x qemu+ssh:
* Migrate the guest back to the 16.04 host
$ virsh migrate --live --verbose b-x qemu+ssh:
Without the fix on the way back you will encounter:
Migration: [100 %]error: operation failed: job: unexpectedly failed
And in the log:
qemu-
qemu-
With the fix the migration works as expected
[Regression Potential]
* The changes are ppc64 only and identified/
fallout should be limited to ppc64 which is their domain
* Furthermore it only affects pre 2.8 guest types, so anything spawned
on 18.04 is unaffected by the changes (as it will default to 2.11)
* The remaining regression "potential" would be around guests migrated
from 16.04 to 18.04 that after the update behave slightly different
(more correct, but different)
[Other Info]
* Fixes are only needed on the newer qemu to handle older guests (pre
2.8 and xenial is 2.5) with power8 compat in a way that they can
be migrated back.
== Comment: #0 - Balamuruhan S - 2018-05-02 08:09:21 ==
---Problem Description---
Backward migration of Ubuntu 16.04.4 P8 guest from Ubuntu 18.04 P9 Host -> Ubuntu 16.04.4 P8 host fails
# virsh -c qemu+ssh:
root@9.47.70.201's password:
Migration: [ 99 %]error: internal error: early end of file from monitor, possible problem: 2018-05-
2018-05-
This is broken because cpu model QEMU 2.5 (-cpu host,compat=power8) and QEMU 2.11 (-machine max-cpu-
Machine Type = Boston
---Steps to Reproduce---
1. Boot healthy P8 16.04.4 Ubuntu guest with explicit compat mode setting on P8 host due to the reason mentioned on https:/
<cpu mode='host-model'>
<model>
</cpu>
2. Have P9 Host with 18.04 Ubuntu build and allow iptables to permit migration
3. Perform migration from Ubuntu 16.04.4 -> Ubuntu 18.04 and it works as expected,
# virsh migrate avocado-
Migration: [100 %]
4. Perform backward migration of the same guest from Ubuntu 18.04 P9 host -> Ubuntu 16.04.4 P8 host and it is broken,
# virsh -c qemu+ssh:
root@9.47.70.201's password:
Migration: [ 99 %]error: internal error: early end of file from monitor, possible problem: 2018-05-
2018-05-
---uname output---
Ubuntu 18.04 P9 Host:
Kernel
# uname -a
Linux ltc-boston114 4.15.0-20-generic #21-Ubuntu SMP Tue Apr 24 06:14:44 UTC 2018 ppc64le ppc64le ppc64le GNU/Linux
Qemu:
# dpkg -l | grep qemu
ii ipxe-qemu 1.0.0+git-
ii ipxe-qemu-
ii qemu 1:2.11+
ii qemu-block-
ii qemu-kvm 1:2.11+
ii qemu-slof 20170724+
ii qemu-utils 1:2.11+
ii qemu-utils 1:2.11+
Libvirt:
# dpkg -l | grep libvirt
ii libvirt-bin 4.0.0-1ubuntu8 ppc64el programs for the libvirt library
ii libvirt-clients 4.0.0-1ubuntu8 ppc64el Programs for the libvirt library
ii libvirt-daemon 4.0.0-1ubuntu8 ppc64el Virtualization daemon
ii libvirt-
ii libvirt-dev:ppc64el 4.0.0-1ubuntu8 ppc64el development files for the libvirt library
ii libvirt-doc 4.0.0-1ubuntu8 all documentation for the libvirt library
Ubuntu 16.04.4 P8 Host:
Kernel:
# uname -a
Linux pkvmhab006 4.13.0-39-generic #44~16.04.1-Ubuntu SMP Thu Apr 5 16:41:53 UTC 2018 ppc64le ppc64le ppc64le GNU/Linux
Qemu:
# dpkg -l | grep qemu
ii ipxe-qemu 1.0.0+git-
ii qemu-block-
ii qemu-kvm 1:2.5+dfsg-
ii qemu-slof 20151103+
ii qemu-system-common 1:2.5+dfsg-
ii qemu-system-ppc 1:2.5+dfsg-
ii qemu-utils 1:2.5+dfsg-
Libvirt:
# dpkg -l | grep libvirt
ii libvirt-bin 1.3.1-1ubuntu10.21 ppc64el programs for the libvirt library
ii libvirt-dev:ppc64el 1.3.1-1ubuntu10.21 ppc64el development files for the libvirt library
ii libvirt0:ppc64el 1.3.1-1ubuntu10.21 ppc64el library for interfacing with different virtualization systems
ii python-libvirt 1.3.1-1ubuntu1.1 ppc64el libvirt Python bindings
Ubuntu 16.04.4 P8 Guest:
Kernel:
# uname -a
Linux ubuntu 4.13.0-39-generic #44~16.04.1-Ubuntu SMP Thu Apr 5 16:41:53 UTC 2018 ppc64le ppc64le ppc64le GNU/Linux
Attachment:
1. Libvirtd debug logs: source and destination host
2. Sosreport: source host, destination host and Guest
---Debugger---
A debugger is not configured
Userspace tool common name: qemu
Userspace rpm: qemu-kvm - 1:2.11+
The userspace tool has the following bit modes: ppc64le
Userspace tool obtained from project website: na
== Comment: #5 - Greg Kurz - 2018-05-04 07:21:05 ==
Backward migration had three distinct issues. Fixes are now upstream:
https:/
https:/
https:/
I'll make sure they land into QEMU 2.11.2 and QEMU 2.12.1 as well.
== Comment: #6 - Balamuruhan S <email address hidden> - 2018-06-08 07:49:51 ==
Tested with latest qemu build available for Ubuntu 18.04,
Issue is still observed with Qemu available in Ubuntu 18.04, I think the patchset is not
included in Qemu 1:2.11+
Migrating P8 Ubuntu16.04.4 guest from P8 Ubuntu 16.04.4 host -> P9 Ubuntu 18.04 host
# virsh migrate avocado-
Migration: [100 %]
Migrating back P8 Ubuntu 16.04.4 guest from P9 Ubuntu 18.04 host -> P8 Ubuntu 16.04.4 host
# virsh -c qemu+ssh:
root@9.47.70.201's password:
Migration: [100 %]error: internal error: early end of file from monitor, possible problem: 2018-06-
2018-06-
P9 Ubuntu 18.04:
Qemu
# dpkg -l | grep qemu
ii ipxe-qemu 1.0.0+git-
ii ipxe-qemu-
ii qemu-block-
ii qemu-kvm 1:2.11+
ii qemu-slof 20170724+
ii qemu-system-common 1:2.11+
ii qemu-system-ppc 1:2.11+
ii qemu-utils 1:2.11+
P8 Ubuntu 16.04.4:
Qemu
# dpkg -l | grep qemu
ii ipxe-qemu 1.0.0+git-
ii qemu-block-
ii qemu-kvm 1:2.5+dfsg-
ii qemu-slof 20151103+
ii qemu-system-common 1:2.5+dfsg-
ii qemu-system-ppc 1:2.5+dfsg-
ii qemu-utils 1:2.5+dfsg-
== Comment: #11 - Greg Kurz - 2018-12-14 04:11:37 ==
According to the QEMU website at https:/
According to the Ubuntu release page at https:/
greg@wslp001:~$ lsb_release -d
Description: Ubuntu 18.04.1 LTS
greg@wslp001:~$ qemu-system-ppc64 --version
QEMU emulator version 2.11.1(Debian 1:2.11+
Copyright (c) 2003-2017 Fabrice Bellard and the QEMU Project developers
I don't know why Canonical didn't pick up the latest stable release... and I'm not sure that fixing backward migration meets the criteria for an SRU.
Related branches
- Andreas Hasenack (community): Approve
- Canonical Server: Pending requested
- git-ubuntu developers: Pending requested
-
Diff: 281 lines (+241/-0)6 files modifieddebian/changelog (+11/-0)
debian/patches/series (+4/-0)
debian/patches/ubuntu/lp-1806104-spapr_pci-Remove-unhelpful-pagesize-warning.patch (+52/-0)
debian/patches/ubuntu/lp-1809083-1-target-ppc-always-set-PPC_MEM_TLBIE-in-pre-2.8.patch (+57/-0)
debian/patches/ubuntu/lp-1809083-3-spapr-don-t-advertise-radix-GTSE-if-max-compat.patch (+71/-0)
debian/patches/ubuntu/lp-1812384-s390x-Return-specification-exception.patch (+46/-0)
- Andreas Hasenack (community): Approve
- Canonical Server: Pending requested
- git-ubuntu developers: Pending requested
-
Diff: 273 lines (+233/-0)6 files modifieddebian/changelog (+11/-0)
debian/patches/series (+4/-0)
debian/patches/ubuntu/lp-1806104-spapr_pci-Remove-unhelpful-pagesize-warning.patch (+49/-0)
debian/patches/ubuntu/lp-1809083-1-target-ppc-always-set-PPC_MEM_TLBIE-in-pre-2.8.patch (+54/-0)
debian/patches/ubuntu/lp-1809083-3-spapr-don-t-advertise-radix-GTSE-if-max-compat.patch (+72/-0)
debian/patches/ubuntu/lp-1812384-s390x-Return-specification-exception.patch (+43/-0)
tags: | added: architecture-ppc64le bugnameltc-167401 severity-high targetmilestone-inin--- |
Changed in ubuntu: | |
assignee: | nobody → Ubuntu on IBM Power Systems Bug Triage (ubuntu-power-triage) |
affects: | ubuntu → qemu (Ubuntu) |
Changed in ubuntu-power-systems: | |
importance: | Undecided → High |
assignee: | nobody → Canonical Server Team (canonical-server) |
Changed in ubuntu-power-systems: | |
status: | New → Triaged |
Changed in ubuntu-power-systems: | |
status: | Triaged → In Progress |
description: | updated |
description: | updated |
description: | updated |
Changed in qemu (Ubuntu Cosmic): | |
status: | Triaged → In Progress |
Changed in qemu (Ubuntu Bionic): | |
status: | Triaged → In Progress |
Changed in ubuntu-power-systems: | |
status: | In Progress → Fix Committed |
Changed in ubuntu-power-systems: | |
status: | Fix Committed → Fix Released |
tags: |
added: targetmilestone-inin18041 removed: targetmilestone-inin--- |
All those changes are in qemu 3.0 and later so there it will be covered by our merge of qemu 3.1
Once that is done we can consider adding the three changes linked here to the qemu in Bionic and Cosmic.
For your wondering "I'm not sure that fixing backward migration meets the criteria for an SRU.":
- it is not guaranteed to be working (not fully supported)
- but if one provides the means (fixes, howto) avoid issue we are willing to help getting them applied
For your wondering about "why Canonical didn't pick up the latest stable release":
- in the past there were issues with qemu stable releases causing issues on updates (this was before my time so no details).
- Due to these issues an SRU exception for those minor release updates was nacked by our Service folks
- in the meantime testing in general got much better so I was planning to suggest an SRU exception for qemu stable releases from 20.04 onwards (just intention so far, nothing committed into plans so far)