(arm64) VM fails to properly reboot
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ubuntu Cloud Archive |
Fix Released
|
Undecided
|
Unassigned | ||
Pike |
Fix Released
|
Undecided
|
Unassigned | ||
qemu (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Artful |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
[Impact]
* Newer qemu crashes on older kernels (on arm) for using a feature that
was not supported by these older kernels.
* Backport of a fix - also the detection code itself already exists in
qemu - this just makes sure that if the feature is not available that
the related function is not queued to prevent a crash.
[Test Case]
* (on arm64 for the actual case - is a no-change everywhere else)
1. create a virtual machine that runs fine
2. suspend it
$ sudo virsh dompmsuspend ubuntu1710 --target mem
3. wake it up
$ sudo virsh dompmwakeup ubuntu1710
=> Before the fix this sequence crashed qemu as outlined in the initial
report below
[Regression Potential]
* This is only affecting arm (and thereby limiting regression to others)
as well as being a backport and no "change from scratch" (limiting risk
again). Then furthermore "all it does" is stop adding the ITS action
which was a feature only added in Artfuls qemu. That said if there
would be a case were the detection would be non-perfect, even then the
user would just fall back to how it worked in zesty. That is a lot of
IFs (=unlikely) and even if so impact would hopefully be minimal.
So I think the regression assessment is very low for this change.
[Other Info]
* Even more important for backports of this like Ubuntu Cloud Archive
---
The Pike cloud archive has a regression, compared to Ocata, where in rebooting a VM via virsh causes the VM to powerdown, and then exit. The VM does not automatically power back up, but can be restarted.
Repro:
Install 16.04.3 on an ARM64 host
Fully update the install
add-apt-repository cloud-archive:pike
apt-get update
apt-get install qemu-efi virt-manager libvirt-bin qemu-guest-agent qemu-system-aarch64
wget http://
create a new session via ssh (session B)
In session B: virt-install --accelerate --cdrom ubuntu-
Once the install completes and the guest is at the login prompt, in session A: virsh reboot ubuntu1710 --mode acpi
Observed result:
The guest will powerdown as expected (from logs on session B), and then session B will be dumped back to the host shell. "virsh list" will not show the ubuntu1710 domain.
Expected result:
The guest powers back on, and boots back to the login prompt.
Analysis:
We observe these errors in various logs:
Nov 1 13:29:16 ubuntu libvirtd[2441]: 2017-11-01 20:29:16.882+0000: 2441: error : qemuMonitorIORe
Nov 1 13:29:16 ubuntu libvirtd[2441]: 2017-11-01 20:29:16.882+0000: 3101: error : qemuMonitorJSON
2017-11-
We debugged this to an issue in the QEMU in Pike being incompatible with the 4.10 kernel of 16.04.3. The QEMU in this version attempts to use the ITS migration functionality during reboot. 4.10 does not support this. When the IOCTL fails, QEMU calls abort(), thus killing the VM.
We believe QEMU should not attempt to use this functionality if the host kernel does not support it. We suggest the attached patch to resolve the issue.
Changed in qemu (Ubuntu): | |
status: | Incomplete → Triaged |
Changed in cloud-archive: | |
status: | New → Invalid |
status: | Invalid → Fix Released |
The attachment "qemu-patch.txt" seems to be a patch. If it isn't, please remove the "patch" flag from the attachment, remove the "patch" tag, and if you are a member of the ~ubuntu-reviewers, unsubscribe the team.
[This is an automated message performed by a Launchpad user owned by ~brian-murray, for any issues please contact him.]