Skip to content
This repository

KVM reboot failures are not gracefully handled #82

Closed
labisso opened this Issue November 30, 2011 · 0 comments

2 participants

David LaBissoniere Pierre Riteau
David LaBissoniere
Collaborator

KVM/libvirt VM reboot support didn't come along until relatively recent, in libvirt 0.9.3. Prior to this Nimbus' attempt to reboot a KVM VM would result in an error from libvirt that caused the VM to be considered CORRUPT:

File "/usr/lib64/python2.4/site-packages/libvirt.py", line 392, in reboot
    if ret == -1: raise libvirtError ('virDomainReboot() failed', dom=self)
libvirtError: this function is not supported by the hypervisor: virDomainReboot
2011-11-30 10:14:27,758 - ERROR - Problem rebooting the 'wrksp-8628' VM: this function is not supported by the hypervisor: virDomainReboot
Traceback (most recent call last):
  File "/opt/nimbus/src/python/workspacecontrol/main/wc_core.py", line 79, in core
    _core(vm_name, action, p, c)
  File "/opt/nimbus/src/python/workspacecontrol/main/wc_core.py", line 239, in _core
    platform.reboot(running_vm)
  File "/opt/nimbus/src/python/workspacecontrol/defaults/lvrt/lvrt_common.py", line 164, in reboot
    raise UnexpectedError(shorterr)
UnexpectedError: Problem rebooting the 'wrksp-8628' VM: this function is not supported by the hypervisor: virDomainReboot
Problem executing: Problem rebooting the 'wrksp-8628' VM: this function is not supported by the hypervisor: virDomainReboot

If possible Nimbus should catch this error return it to the user, but leave the VM in a healthy state.

Pierre Riteau priteau closed this issue from a commit July 02, 2012
Pierre Riteau Gracefully handle KVM reboot failures
KVM can fail to reboot instances because reboot is not supported in
versions prior to 0.9.3, or because some versions require the QEMU JSON
monitor. We still log reboot failures but throw exceptions only if the
VM is not running anymore.

Closes #82.
ad551f3
Pierre Riteau priteau closed this in ad551f3 July 02, 2012
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.