← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1727134] Re: XenAPI: resolve the failure VM_MISSING_PV_DRIVERS for PV VM

 

Reviewed:  https://review.openstack.org/514902
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=e18608d579ac28b3d30879d6e375f0c89a3e4ef1
Submitter: Zuul
Branch:    master

commit e18608d579ac28b3d30879d6e375f0c89a3e4ef1
Author: Jianghua Wang <jianghua.wang@xxxxxxxxxx>
Date:   Wed Oct 25 03:04:16 2017 +0000

    XenAPI: resolve VBD unplug failure with VM_MISSING_PV_DRIVERS error
    
    The virtual block device(VBD) hot unplugging should be done when VM has
    paravirtualization(PV) driver installed. But we observed failures with
    VM_MISSING_PV_DRIVERS error on a real PV VM sometime.
    
    Actually it's a race condition. At VM booting, it needs some time for
    the PV driver to be connected. If the VBD.unplug operation goes before
    the PV driver connected to xen, it will failed with VM_MISSING_PV_DRIVERS.
    
    The fix is to retry unplug. If really there is no PV driver installed in
    VM, failed after the attempts.
    
    Change-Id: I6b788ba24aa3e7c061dac06c52570ff3818bc91a
    Closes-Bug: #1727134


** Changed in: nova
       Status: In Progress => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1727134

Title:
  XenAPI: resolve the failure VM_MISSING_PV_DRIVERS for PV VM

Status in OpenStack Compute (nova):
  Fix Released

Bug description:
  When testing: tempest.api.compute.volumes.test_attach_volume.AttachVolumeTestJSON.test_attach_detach_volume
  observed the error of "VM_MISSING_PV_DRIVERS"; But actually the VM does have PV drivers installed.

  2017-10-25 02:17:29.566 ^[[01;31mERROR nova.virt.xenapi.vm_utils [^[[01;36mreq-7997faf5-5d5b-4312-a7c6-d5a45d431526 ^[[00;36mtempest-ServerActionsTestJSON-1628628303 tempest-ServerActionsTestJSON-1628628303^[[01;31m] ^[[01;35m^[[01;31mUnable to unplug VBD^[[00m^M
  ^[[01;31m2017-10-25 02:17:29.566 TRACE nova.virt.xenapi.vm_utils ^[[01;35m^[[00mTraceback (most recent call last):^M
  ^[[01;31m2017-10-25 02:17:29.566 TRACE nova.virt.xenapi.vm_utils ^[[01;35m^[[00m  File "/opt/stack/nova/nova/virt/xenapi/vm_utils.py", line 333, in unplug_vbd^M
  ^[[01;31m2017-10-25 02:17:29.566 TRACE nova.virt.xenapi.vm_utils ^[[01;35m^[[00m    greenthread.sleep(1)^M
  ^[[01;31m2017-10-25 02:17:29.566 TRACE nova.virt.xenapi.vm_utils ^[[01;35m^[[00m  File "/opt/stack/nova/nova/virt/xenapi/client/objects.py", line 94, in unplug^M
  ^[[01;31m2017-10-25 02:17:29.566 TRACE nova.virt.xenapi.vm_utils ^[[01;35m^[[00m    synchronized_unplug()^M
  ^[[01;31m2017-10-25 02:17:29.566 TRACE nova.virt.xenapi.vm_utils ^[[01;35m^[[00m  File "/usr/local/lib/python2.7/dist-packages/oslo_concurrency/lockutils.py", line 271, in inner^M
  ^[[01;31m2017-10-25 02:17:29.566 TRACE nova.virt.xenapi.vm_utils ^[[01;35m^[[00m    return f(*args, **kwargs)^M
  ^[[01;31m2017-10-25 02:17:29.566 TRACE nova.virt.xenapi.vm_utils ^[[01;35m^[[00m  File "/opt/stack/nova/nova/virt/xenapi/client/objects.py", line 89, in synchronized_unplug^M
  ^[[01;31m2017-10-25 02:17:29.566 TRACE nova.virt.xenapi.vm_utils ^[[01;35m^[[00m    self._call_method("unplug", vbd_ref)^M
  ^[[01;31m2017-10-25 02:17:29.566 TRACE nova.virt.xenapi.vm_utils ^[[01;35m^[[00m  File "/opt/stack/nova/nova/virt/xenapi/client/objects.py", line 59, in _call_method^M
  ^[[01;31m2017-10-25 02:17:29.566 TRACE nova.virt.xenapi.vm_utils ^[[01;35m^[[00m    return self.session.call_xenapi(call, *args)^M
  ^[[01;31m2017-10-25 02:17:29.566 TRACE nova.virt.xenapi.vm_utils ^[[01;35m^[[00m  File "/opt/stack/nova/nova/virt/xenapi/client/session.py", line 197, in call_xenapi^M
  ^[[01;31m2017-10-25 02:17:29.566 TRACE nova.virt.xenapi.vm_utils ^[[01;35m^[[00m    return session.xenapi_request(method, args)^M
  ^[[01;31m2017-10-25 02:17:29.566 TRACE nova.virt.xenapi.vm_utils ^[[01;35m^[[00m  File "/usr/local/lib/python2.7/dist-packages/XenAPI.py", line 133, in xenapi_request^M
  ^[[01;31m2017-10-25 02:17:29.566 TRACE nova.virt.xenapi.vm_utils ^[[01;35m^[[00m    result = _parse_result(getattr(self, methodname)(*full_params))^M
  ^[[01;31m2017-10-25 02:17:29.566 TRACE nova.virt.xenapi.vm_utils ^[[01;35m^[[00m  File "/usr/local/lib/python2.7/dist-packages/XenAPI.py", line 203, in _parse_result^M
  ^[[01;31m2017-10-25 02:17:29.566 TRACE nova.virt.xenapi.vm_utils ^[[01;35m^[[00m    raise Failure(result['ErrorDescription'])^M
  ^[[01;31m2017-10-25 02:17:29.566 TRACE nova.virt.xenapi.vm_utils ^[[01;35m^[[00mFailure: ['VM_MISSING_PV_DRIVERS', 'OpaqueRef:269c1940-69fd-c549-ed1d-1aefe725b967']^M
  ^[[01;31m2017-10-25 02:17:29.566 TRACE nova.virt.xenapi.vm_utils ^[[01;35m^[[00m^M

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1727134/+subscriptions


References