'nova rescue' fails if an instance image does not have a kernel_id
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Confirmed
|
Medium
|
Unassigned | ||
nova (Ubuntu) |
Confirmed
|
Medium
|
Unassigned |
Bug Description
A client of mine attempted to rescue an instance by using the `nova rescue` command which failed putting the instance in the `ERROR` state.
I am running Openstack Essex on Ubuntu 12.04 with KVM as my hypervisor and I do not have `rescue_image_id`, `rescue_kernel_id` nor `rescue_ramdisk_id` defined in my nova.conf file.
The log (included below) indicates that the rescue failed to complete as the rescue kernel does not exist. This is expected as the config does not include the `rescue_*_id` variables and the instance was started with an image which does not include a ramdisk or kernel image.
What happens:
-------------
The user is informed that an error occurred and the instance is set to the `error` state.
What I expect:
--------------
If `rescue_kernel_id` is not defined in nova.conf and the instance does not have a valid kernel_id, then the user should be informed that the instance cannot be rescued rather than the instance going into the error state and becoming inaccessible.
Log file:
---------
2012-07-24 14:20:08 ERROR nova.compute.
2012-07-24 14:20:08 ERROR nova.rpc.amqp [req-2bdf6c17-
2012-07-24 14:20:08 TRACE nova.rpc.amqp Traceback (most recent call last):
2012-07-24 14:20:08 TRACE nova.rpc.amqp File "/usr/lib/
2012-07-24 14:20:08 TRACE nova.rpc.amqp rval = node_func(
2012-07-24 14:20:08 TRACE nova.rpc.amqp File "/usr/lib/
2012-07-24 14:20:08 TRACE nova.rpc.amqp return f(*args, **kw)
2012-07-24 14:20:08 TRACE nova.rpc.amqp File "/usr/lib/
2012-07-24 14:20:08 TRACE nova.rpc.amqp function(self, context, instance_uuid, *args, **kwargs)
2012-07-24 14:20:08 TRACE nova.rpc.amqp File "/usr/lib/
2012-07-24 14:20:08 TRACE nova.rpc.amqp sys.exc_info())
2012-07-24 14:20:08 TRACE nova.rpc.amqp File "/usr/lib/
2012-07-24 14:20:08 TRACE nova.rpc.amqp self.gen.next()
2012-07-24 14:20:08 TRACE nova.rpc.amqp File "/usr/lib/
2012-07-24 14:20:08 TRACE nova.rpc.amqp return function(self, context, instance_uuid, *args, **kwargs)
2012-07-24 14:20:08 TRACE nova.rpc.amqp File "/usr/lib/
2012-07-24 14:20:08 TRACE nova.rpc.amqp self._legacy_
2012-07-24 14:20:08 TRACE nova.rpc.amqp File "/usr/lib/
2012-07-24 14:20:08 TRACE nova.rpc.amqp return f(*args, **kw)
2012-07-24 14:20:08 TRACE nova.rpc.amqp File "/usr/lib/
2012-07-24 14:20:08 TRACE nova.rpc.amqp self._hard_
2012-07-24 14:20:08 TRACE nova.rpc.amqp File "/usr/lib/
2012-07-24 14:20:08 TRACE nova.rpc.amqp self._create_
2012-07-24 14:20:08 TRACE nova.rpc.amqp File "/usr/lib/
2012-07-24 14:20:08 TRACE nova.rpc.amqp domain.
2012-07-24 14:20:08 TRACE nova.rpc.amqp File "/usr/lib/
2012-07-24 14:20:08 TRACE nova.rpc.amqp if ret == -1: raise libvirtError ('virDomainCrea
2012-07-24 14:20:08 TRACE nova.rpc.amqp libvirtError: unable to set user and group to '107:116' on '/srv/nova/
SQL showing the relevant image fields for the instance:
-------
mysql> select image_ref, kernel_id, ramdisk_id from instances where id = '13947';
+------
| image_ref | kernel_id | ramdisk_id |
+------
| 3400daaa-
+------
System information:
-------------------
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_
DISTRIB_
DISTRIB_
$ dpkg-query --show 'nova*'
nova-api 2012.1+
nova-cert 2012.1+
nova-common 2012.1+
nova-doc 2012.1+
nova-network 2012.1+
nova-objectstore 2012.1+
nova-scheduler 2012.1+
description: | updated |
description: | updated |
Changed in nova (Ubuntu): | |
importance: | Undecided → Medium |
status: | New → Confirmed |
Changed in nova: | |
importance: | Undecided → Medium |
status: | New → Confirmed |