If libguestfs hangs when provisioning an instance, nova will wait forever.
Bug #1286256 reported by
Lars Kellogg-Stedman
This bug affects 2 people
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Medium
|
Daniel Berrange |
Bug Description
In some situations (using nested KVM in an environment where nested KVM support is buggy), the appliance started by libguestfs will hang and the libguestfs-launched qemu process will never exit. This will cause the launched instance to get stuck in state=spawning forver (or until someone explicitly kills the libguestfs appliance).
We should wrap the call to guestfs.
tags: | added: libvirt |
Changed in nova: | |
status: | New → Confirmed |
importance: | Undecided → Medium |
Changed in nova: | |
assignee: | nobody → Daniel Berrange (berrange) |
Changed in nova: | |
milestone: | none → juno-3 |
status: | Fix Committed → Fix Released |
Changed in nova: | |
milestone: | juno-3 → 2014.2 |
To post a comment you must log in.
Summarise what I discussed with Lars yesterday about this bug:
(1) If libguestfs hangs because of nested KVM, then it likely indicates your guest is going to hang too, so libguestfs is just being the canary in the mine here. However:
(2) Some users select libvirt_type=qemu to use software emulation when they know nested KVM is broken.
Libguestfs doesn't honor setting (2), but it certainly should, and it's easy to achieve that. After creating the handle but before calling g.launch(), you need to add the following bit of code:
if // some test here that libvirt_type=qemu:
g. set_backend_ settings ("force_tcg") settings method doesn't exist, ignore
try:
except AttributeError:
# g.set_backend_
pass
----
Note for RHOS: If you want g.set_backend_ settings to be backported, you need to open a bug in https:/ /bugzilla. redhat. com