When I resize an instance and the 'migration' plugin fails, I see the following traceback in the logs and the instance sits in 'RESIZE' status (visible through OSAPI) indefinitely. We should handle this failure and set the instance to ERROR so it can be deleted.
2011-11-03 10:04:08,049 ERROR nova.rpc [-] Exception during message handling
(nova.rpc): TRACE: Traceback (most recent call last):
(nova.rpc): TRACE: File "/usr/lib/python2.6/dist-packages/nova/rpc/impl_kombu.py", line 620, in _process_data
(nova.rpc): TRACE: rval = node_func(context=ctxt, **node_args)
(nova.rpc): TRACE: File "/usr/lib/python2.6/dist-packages/nova/exception.py", line 113, in wrapped
(nova.rpc): TRACE: return f(*args, **kw)
(nova.rpc): TRACE: File "/usr/lib/python2.6/dist-packages/nova/compute/manager.py", line 120, in decorated_function
(nova.rpc): TRACE: function(self, context, instance_id, *args, **kwargs)
(nova.rpc): TRACE: File "/usr/lib/python2.6/dist-packages/nova/compute/manager.py", line 1074, in resize_instance
(nova.rpc): TRACE: context, instance_ref, migration_ref['dest_host'])
(nova.rpc): TRACE: File "/usr/lib/python2.6/dist-packages/nova/virt/xenapi_conn.py", line 250, in migrate_disk_and_power_off
(nova.rpc): TRACE: return self._vmops.migrate_disk_and_power_off(context, instance, dest)
(nova.rpc): TRACE: File "/usr/lib/python2.6/dist-packages/nova/virt/xenapi/vmops.py", line 683, in migrate_disk_and_power_off
(nova.rpc): TRACE: self._migrate_vhd(instance, base_copy_uuid, dest, sr_path)
(nova.rpc): TRACE: File "/usr/lib/python2.6/dist-packages/nova/virt/xenapi/vmops.py", line 623, in _migrate_vhd
(nova.rpc): TRACE: self._session.wait_for_task(task, instance_id)
(nova.rpc): TRACE: File "/usr/lib/python2.6/dist-packages/nova/virt/xenapi_conn.py", line 510, in wait_for_task
(nova.rpc): TRACE: return done.wait()
(nova.rpc): TRACE: File "/usr/lib/python2.6/dist-packages/eventlet/event.py", line 116, in wait
(nova.rpc): TRACE: return hubs.get_hub().switch()
(nova.rpc): TRACE: File "/usr/lib/python2.6/dist-packages/eventlet/hubs/hub.py", line 177, in switch
(nova.rpc): TRACE: return self.greenlet.switch()
(nova.rpc): TRACE: Failure: ['XENAPI_PLUGIN_EXCEPTION', 'transfer_vhd', 'Exception', 'Unexpected VHD transfer failure']
(nova.rpc): TRACE:
Reviewed: https:/ /review. openstack. org/1297 github. com/openstack/ nova/commit/ ca6295e5dd238a8 8b731c3bf3e3370 07d12b6c1c
Committed: http://
Submitter: Jenkins
Branch: master
status fixcommitted
done
commit ca6295e5dd238a8 8b731c3bf3e3370 07d12b6c1c
Author: Brian Waldon <email address hidden>
Date: Thu Nov 3 13:40:56 2011 -0400
Gracefully handle Xen resize failure
Fixes bug 885723
Change-Id: I8cd04a88f809f4 9141dc6aa5be721 7811e0141e3