Obscure error when plugins mismatch

Bug #1226622 reported by Bob Ball
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Fix Released
Medium
Bob Ball

Bug Description

When the version of XenServer plugins do not match the version exepcted by Nova you can get very obscure errors, such as the one below - posted to <email address hidden>:

2013-09-17 02:44:17.853 ERROR nova.compute.manager [req-b524f9d2-7675-4e3b-acc1-25b8cb3e544c 7378135d00ec442a80fb1cd7eac6f489 5b1acda6173a46cea4e2448147c20662] [instance: 437aba49-d9eb-4924-8753-5446725aeae0] Error: ['Traceback (most recent call last):\n', ' File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 848, in _run_instance\n set_access_ip=set_access_ip)\n', ' File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 1107, in _spawn\n LOG.exception(_(\'Instance failed to spawn\'), instance=instance)\n', ' File "/usr/lib/python2.7/contextlib.py", line 24, in __exit__\n self.gen.next()\n', ' File "/usr/lib/python2.7/dist-packages/nova/compute/manager.py", line 1103, in _spawn\n block_device_info)\n', ' File "/usr/lib/python2.7/dist-packages/nova/virt/xenapi/driver.py", line 177, in spawn\n admin_password, network_info, block_device_info)\n', ' File "/usr/lib/python2.7/dist-packages/nova/virt/xenapi/vmops.py", line 480, in spawn\n undo_mgr.rollback_and_reraise(msg=msg, instance=instance)\n', ' File "/usr/lib/python2.7/dist-packages/nova/utils.py", line 1250, in rollback_and_reraise\n self._rollback()\n', ' File "/usr/lib/python2.7/contextlib.py", line 24, in __exit__\n self.gen.next()\n', ' File "/usr/lib/python2.7/dist-packages/nova/virt/xenapi/vmops.py", line 463, in spawn\n vdis = create_disks_step(undo_mgr, disk_image_type, image_meta)\n', ' File "/usr/lib/python2.7/dist-packages/nova/virt/xenapi/vmops.py", line 142, in inner\n rv = f(*args, **kwargs)\n', ' File "/usr/lib/python2.7/dist-packages/nova/virt/xenapi/vmops.py", line 346, in create_disks_step\n block_device_info=block_device_info)\n', ' File "/usr/lib/python2.7/dist-packages/nova/virt/xenapi/vmops.py", line 317, in _create_disks\n block_device_info=block_device_info)\n', ' File "/usr/lib/python2.7/dist-packages/nova/virt/xenapi/vm_utils.py", line 518, in get_vdis_for_instance\n context, session, instance, name_label, image, image_type)\n', ' File "/usr/lib/python2.7/dist-packages/nova/virt/xenapi/vm_utils.py", line 974, in _create_image\n image_id, image_type)\n', ' File "/usr/lib/python2.7/dist-packages/nova/virt/xenapi/vm_utils.py", line 919, in _create_cached_image\n image_id, image_type)\n', ' File "/usr/lib/python2.7/dist-packages/nova/virt/xenapi/vm_utils.py", line 994, in _fetch_image\n vdis = _fetch_vhd_image(context, session, instance, image_id)\n', ' File "/usr/lib/python2.7/dist-packages/nova/virt/xenapi/vm_utils.py", line 1109, in _fetch_vhd_image\n callback=callback)\n', ' File "/usr/lib/python2.7/dist-packages/nova/virt/xenapi/vm_utils.py", line 1022, in _fetch_using_dom0_plugin_with_retry\n plugin_name, \'download_vhd\', **params)\n', ' File "/usr/lib/python2.7/dist-packages/nova/virt/xenapi/driver.py", line 739, in call_plugin_serialized\n rv = self.call_plugin(plugin, fn, params)\n', ' File "/usr/lib/python2.7/dist-packages/nova/virt/xenapi/driver.py", line 735, in call_plugin\n host, plugin, fn, args)\n', ' File "/usr/lib/python2.7/dist-packages/nova/virt/xenapi/driver.py", line 749, in _unwrap_plugin_exceptions\n return func(*args, **kwargs)\n', ' File "/usr/lib/python2.7/dist-packages/XenAPI.py", line 235, in __call__\n return self.__send(self.__name, args)\n', ' File "/usr/lib/python2.7/dist-packages/XenAPI.py", line 139, in xenapi_request\n result = _parse_result(getattr(self, methodname)(*full_params))\n', ' File "/usr/lib/python2.7/dist-packages/XenAPI.py", line 209, in _parse_result\n raise Failure(result[\'ErrorDescription\'])\n', 'Failure: [\'XENAPI_PLUGIN_FAILURE\', \'download_vhd\', \'TypeError\', "download_vhd() got an unexpected keyword argument \'auth_token\'"]\n']

We should test for compatible versions when starting Nova

Tags: xenserver
tags: added: xenserver
Revision history for this message
Dan Smith (danms) wrote :

Might be nice to get a clean log as the one in the description is fairly unreadable :)

Changed in nova:
importance: Undecided → Medium
status: New → Confirmed
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova (master)

Fix proposed to branch: master
Review: https://review.openstack.org/47162

Changed in nova:
assignee: nobody → Bob Ball (bob-ball)
status: Confirmed → In Progress
Bob Ball (bob-ball)
tags: added: havana-rc-potential
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (master)

Reviewed: https://review.openstack.org/47162
Committed: http://github.com/openstack/nova/commit/24fd331b8cd5aca66362e6f76deec9c437875933
Submitter: Jenkins
Branch: master

commit 24fd331b8cd5aca66362e6f76deec9c437875933
Author: Bob Ball <email address hidden>
Date: Tue Sep 17 15:29:30 2013 +0100

    XenAPI: Add versioning for plugins

    Because the plugins live on a host seperate to Nova we need an interface
    to test whether they are the expected version. We can't use pip or other
    requirement systems as they are cross-machine.

    Closes bug 1226622

    Change-Id: I58ab669061f51bd87071e2cf0d93d33021001309

Changed in nova:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in nova:
milestone: none → havana-rc2
tags: removed: havana-rc-potential
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova (milestone-proposed)

Fix proposed to branch: milestone-proposed
Review: https://review.openstack.org/50936

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (milestone-proposed)

Reviewed: https://review.openstack.org/50936
Committed: http://github.com/openstack/nova/commit/cad1c865c63833dc68dbe6f1ed1ebf45a7ac9075
Submitter: Jenkins
Branch: milestone-proposed

commit cad1c865c63833dc68dbe6f1ed1ebf45a7ac9075
Author: Bob Ball <email address hidden>
Date: Tue Sep 17 15:29:30 2013 +0100

    XenAPI: Add versioning for plugins

    Because the plugins live on a host seperate to Nova we need an interface
    to test whether they are the expected version. We can't use pip or other
    requirement systems as they are cross-machine.

    Closes bug 1226622

    Change-Id: I58ab669061f51bd87071e2cf0d93d33021001309
    (cherry picked from commit 24fd331b8cd5aca66362e6f76deec9c437875933)

Changed in nova:
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in nova:
milestone: havana-rc2 → 2013.2
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.