The VM hang happens because of pending interrupts not reinjected when migrating the VM several times
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Fix Released
|
Medium
|
Gavin Guo | ||
Trusty |
Fix Released
|
Medium
|
Unassigned |
Bug Description
[Impact]
After the VM(Guest OS is Windows Server 2012R2) has been live-migrated
several times, the screen is blacked out or freeze when the VM is
connected via VNC.
The Windows Guest OS Server has been investigated that all of kernel
threads of Windows Server OS are waiting(idle state) for interrupt
request(IRQ) from hypervisor.
The following environment is tested:
* Host OS: Ubuntu 14.04(kernel 3.13.0-40.69)
* qemu-kvm_
* libvert-
* nova-compute_
* GuestOS: Windows Server 2012R2
* virtio-win-0.1.126
[Fix]
The patch set is needed:
673f7b4257a1 KVM: ioapic: reinject pending interrupts on KVM_SET_IRQCHIP
44847dea7975 KVM: ioapic: extract body of kvm_ioapic_set_irq
0bc830b05c66 KVM: ioapic: clear IRR for edge-triggered interrupts at delivery
0b10a1c87a2b KVM: ioapic: merge ioapic_deliver into ioapic_service
[Test]
Prepare two machines with the same environment mentioned above and run
the following script.
#!/bin/bash
INSTANCE="test"
FROM="elite"
virsh -c qemu+ssh:
if [[ $? != 0 ]]; then
FROM="dixie";
TO="elite";
else
TO="dixie"
fi
echo "= Migrating ${INSTANCE} from ${FROM} to ${TO} ="
ssh ubuntu@${FROM} -- virsh migrate --live --domain ${INSTANCE}
--desturi qemu+ssh:
The VNC script I use to keep track of the VNC console is:
#!/bin/bash
INSTANCE="test"
while true; do
HOST="elite"
virsh -c qemu+ssh:
if [[ $? != 0 ]]; then HOST="dixie"; fi
virt-viewer -c qemu+ssh:
sleep 3
done
CVE References
description: | updated |
Changed in linux (Ubuntu Trusty): | |
status: | New → In Progress |
Changed in linux (Ubuntu Trusty): | |
status: | In Progress → Fix Committed |
tags: |
added: verification-done-trusty removed: verification-needed-trusty |
Changed in linux (Ubuntu): | |
status: | Incomplete → Fix Released |
importance: | Undecided → Medium |
Changed in linux (Ubuntu Trusty): | |
importance: | Undecided → Medium |
tags: | added: cscc |
This bug is missing log files that will aid in diagnosing the problem. While running an Ubuntu kernel (not a mainline or third-party kernel) please enter the following command in a terminal window:
apport-collect 1791286
and then change the status of the bug to 'Confirmed'.
If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.
This change has been made by an automated script, maintained by the Ubuntu Kernel Team.