Activity log for bug #1300288

Date Who What changed Old value New value Message
2014-03-31 15:40:30 Lucas Alvares Gomes bug added bug
2014-03-31 15:40:38 Lucas Alvares Gomes ironic: assignee Lucas Alvares Gomes (lucasagomes)
2014-03-31 15:40:41 Lucas Alvares Gomes ironic: importance Undecided High
2014-03-31 15:40:46 Lucas Alvares Gomes ironic: milestone juno-1
2014-04-01 13:29:15 Lucas Alvares Gomes description If something fails in the spawn() method (E.g we Nova Ironic Driver couldn't add the PXE parameters in Ironic) nova will try to rescheduler the instance and as part of the rescheduling process nova will call destroy() on that instance which will then send a request to Ironic to undeploy the node, but the problem is that the node wasn't even deployed, so another error will be raised which will then overwrite the previous one making it very difficult to debug the real cause of the problem. LOGS: $ nova boot... stack@stack-virtual-machine:~/devstack$ nova list +--------------------------------------+------------+--------+------------+-------------+-------------------+ | ID | Name | Status | Task State | Power State | Networks | +--------------------------------------+------------+--------+------------+-------------+-------------------+ | e155d6c7-f4ba-4726-a892-3db2d8ee9c0d | ironictest | ERROR | - | NOSTATE | public=172.24.4.4 | +--------------------------------------+------------+--------+------------+-------------+-------------------+ stack@stack-virtual-machine:~/devstack$ nova show e155d6c7-f4ba-4726-a892-3db2d8ee9c0d +--------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ | Property | Value | +--------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ | OS-DCF:diskConfig | MANUAL | | OS-EXT-AZ:availability_zone | nova | | OS-EXT-SRV-ATTR:host | stack-virtual-machine | | OS-EXT-SRV-ATTR:hypervisor_hostname | db2f5627-cb55-44d7-99dd-88c0a0eccd77 | | OS-EXT-SRV-ATTR:instance_name | instance-00000002 | | OS-EXT-STS:power_state | 0 | | OS-EXT-STS:task_state | - | | OS-EXT-STS:vm_state | error | | OS-SRV-USG:launched_at | - | | OS-SRV-USG:terminated_at | - | | accessIPv4 | | | accessIPv6 | | | config_drive | | | created | 2014-03-31T15:04:10Z | | fault | {"message": "RPC do_node_tear_down not allowed for node db2f5627-cb55-44d7-99dd-88c0a0eccd77 in state None | | | Traceback (most recent call last): | | | | | | File \"/usr/local/lib/python2.7/dist-packages/wsmeext/pecan.py\", line 77, in callfunction | | | result = f(self, *args, **kwar", "code": 500, "details": " File \"/opt/stack/nova/nova/compute/manager.py\", line 293, in decorated_function | | | return function(self, context, *args, **kwargs) | | | File \"/opt/stack/nova/nova/compute/manager.py\", line 2003, in run_instance | | | do_run_instance() | | | File \"/opt/stack/nova/nova/openstack/common/lockutils.py\", line 249, in inner | | | return f(*args, **kwargs) | | | File \"/opt/stack/nova/nova/compute/manager.py\", line 2002, in do_run_instance | | | legacy_bdm_in_spec) | | | File \"/opt/stack/nova/nova/compute/manager.py\", line 1150, in _run_instance | | | notify(\"error\", fault=e) # notify that build failed | | | File \"/opt/stack/nova/nova/openstack/common/excutils.py\", line 68, in __exit__ | | | six.reraise(self.type_, self.value, self.tb) | | | File \"/opt/stack/nova/nova/compute/manager.py\", line 1134, in _run_instance | | | instance, image_meta, legacy_bdm_in_spec) | | | File \"/opt/stack/nova/nova/compute/manager.py\", line 1287, in _build_instance | | | filter_properties, bdms, legacy_bdm_in_spec) | | | File \"/opt/stack/nova/nova/compute/manager.py\", line 1333, in _reschedule_or_error | | | self._log_original_error(exc_info, instance_uuid) | | | File \"/opt/stack/nova/nova/openstack/common/excutils.py\", line 68, in __exit__ | | | six.reraise(self.type_, self.value, self.tb) | | | File \"/opt/stack/nova/nova/compute/manager.py\", line 1328, in _reschedule_or_error | | | bdms, requested_networks) | | | File \"/opt/stack/nova/nova/compute/manager.py\", line 2053, in _shutdown_instance | | | requested_networks) | | | File \"/opt/stack/nova/nova/openstack/common/excutils.py\", line 68, in __exit__ | | | six.reraise(self.type_, self.value, self.tb) | | | File \"/opt/stack/nova/nova/compute/manager.py\", line 2043, in _shutdown_instance | | | block_device_info) | | | File \"/opt/stack/ironic/ironic/nova/virt/ironic/driver.py\", line 500, in destroy | | | icli.node.set_provision_state, node_uuid, 'deleted') | | | File \"/opt/stack/ironic/ironic/nova/virt/ironic/driver.py\", line 183, in _retry_if_service_is_unavailable | | | timer.start(interval=CONF.ironic.api_retry_interval).wait() | | | File \"/usr/local/lib/python2.7/dist-packages/eventlet/event.py\", line 116, in wait | | | return hubs.get_hub().switch() | | | File \"/usr/local/lib/python2.7/dist-packages/eventlet/hubs/hub.py\", line 187, in switch | | | return self.greenlet.switch() | | | File \"/opt/stack/nova/nova/openstack/common/loopingcall.py\", line 78, in _inner | | | self.f(*self.args, **self.kw) | | | File \"/opt/stack/ironic/ironic/nova/virt/ironic/driver.py\", line 171, in _request_api | | | func(*args) | | | File \"/opt/stack/python-ironicclient/ironicclient/v1/node.py\", line 102, in set_provision_state | | | return self._update(self._path(path), target, method='PUT') | | | File \"/opt/stack/python-ironicclient/ironicclient/common/base.py\", line 68, in _update | | | resp, body = self.api.json_request(method, url, body=body) | | | File \"/opt/stack/python-ironicclient/ironicclient/common/http.py\", line 186, in json_request | | | resp, body_iter = self._http_request(url, method, **kwargs) | | | File \"/opt/stack/python-ironicclient/ironicclient/common/http.py\", line 169, in _http_request | | | error_json.get('debuginfo')) | | | ", "created": "2014-03-31T15:04:18Z"} | | flavor | baremetal (ae187c1a-3604-413f-b5e8-d8fd0b687ddd) | | hostId | ea888db9bf4d0ee6a8188f9c70413951a362a970b297d0d59ec31cac | | id | e155d6c7-f4ba-4726-a892-3db2d8ee9c0d | | image | cirros-0.3.1-x86_64-uec (29d1326b-f5a2-42c0-a712-a81057612521) | | key_name | default | | metadata | {} | | name | ironictest | | os-extended-volumes:volumes_attached | [] | | public network | 172.24.4.4 | | status | ERROR | | tenant_id | 6fa62fa758e645659f5b2519c981a0b6 | | updated | 2014-03-31T15:04:18Z | | user_id | be6a18d4c46c452782eeea06754627a2 | +--------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ 2014-03-31 14:11:46.580 13461 ERROR wsme.api [-] Server-side error: "RPC do_node_tear_down not allowed for node 632244aa-a2ff-40e7-b2dd-37c983691397 in state None Traceback (most recent call last): File "/opt/stack/ironic/ironic/openstack/common/rpc/common.py", line 423, in catch_client_exception return func(*args, **kwargs) File "/opt/stack/ironic/ironic/conductor/manager.py", line 428, in do_node_tear_down task.release_resources() File "/opt/stack/ironic/ironic/openstack/common/excutils.py", line 70, in __exit__ six.reraise(self.type_, self.value, self.tb) File "/opt/stack/ironic/ironic/conductor/manager.py", line 405, in do_node_tear_down % {'node': node_id, 'state': node.provision_state}) InstanceDeployFailure: RPC do_node_tear_down not allowed for node 632244aa-a2ff-40e7-b2dd-37c983691397 in state None ". Detail: Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/wsmeext/pecan.py", line 77, in callfunction result = f(self, *args, **kwargs) File "/opt/stack/ironic/ironic/api/controllers/v1/node.py", line 228, in provision pecan.request.context, node_uuid, topic) File "/opt/stack/ironic/ironic/conductor/rpcapi.py", line 205, in do_node_tear_down topic=topic or self.topic) File "/opt/stack/ironic/ironic/openstack/common/rpc/proxy.py", line 125, in call result = rpc.call(context, real_topic, msg, timeout) File "/opt/stack/ironic/ironic/openstack/common/rpc/__init__.py", line 112, in call return _get_impl().call(CONF, context, topic, msg, timeout) File "/opt/stack/ironic/ironic/openstack/common/rpc/impl_kombu.py", line 815, in call rpc_amqp.get_connection_pool(conf, Connection)) File "/opt/stack/ironic/ironic/openstack/common/rpc/amqp.py", line 575, in call rv = list(rv) File "/opt/stack/ironic/ironic/openstack/common/rpc/amqp.py", line 540, in __iter__ raise result InstanceDeployFailure_Remote: RPC do_node_tear_down not allowed for node 632244aa-a2ff-40e7-b2dd-37c983691397 in state None Traceback (most recent call last): File "/opt/stack/ironic/ironic/openstack/common/rpc/common.py", line 423, in catch_client_exception return func(*args, **kwargs) File "/opt/stack/ironic/ironic/conductor/manager.py", line 428, in do_node_tear_down task.release_resources() File "/opt/stack/ironic/ironic/openstack/common/excutils.py", line 70, in __exit__ six.reraise(self.type_, self.value, self.tb) File "/opt/stack/ironic/ironic/conductor/manager.py", line 405, in do_node_tear_down % {'node': node_id, 'state': node.provision_state}) InstanceDeployFailure: RPC do_node_tear_down not allowed for node 632244aa-a2ff-40e7-b2dd-37c983691397 in state None If something fails in the spawn() method (E.g we Nova Ironic Driver couldn't add the PXE parameters in Ironic) nova will try to rescheduler the instance and as part of the rescheduling process nova will call destroy() on that instance which will then send a request to Ironic to undeploy the node, but the problem is that the node wasn't even deployed, so another error will be raised which will then overwrite the previous one making it very difficult to debug the real cause of the problem. Also the instance can't be deleted from nova after it. LOGS: $ nova boot... stack@stack-virtual-machine:~/devstack$ nova list +--------------------------------------+------------+--------+------------+-------------+-------------------+ | ID | Name | Status | Task State | Power State | Networks | +--------------------------------------+------------+--------+------------+-------------+-------------------+ | e155d6c7-f4ba-4726-a892-3db2d8ee9c0d | ironictest | ERROR | - | NOSTATE | public=172.24.4.4 | +--------------------------------------+------------+--------+------------+-------------+-------------------+ stack@stack-virtual-machine:~/devstack$ nova show e155d6c7-f4ba-4726-a892-3db2d8ee9c0d +--------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ | Property | Value | +--------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ | OS-DCF:diskConfig | MANUAL | | OS-EXT-AZ:availability_zone | nova | | OS-EXT-SRV-ATTR:host | stack-virtual-machine | | OS-EXT-SRV-ATTR:hypervisor_hostname | db2f5627-cb55-44d7-99dd-88c0a0eccd77 | | OS-EXT-SRV-ATTR:instance_name | instance-00000002 | | OS-EXT-STS:power_state | 0 | | OS-EXT-STS:task_state | - | | OS-EXT-STS:vm_state | error | | OS-SRV-USG:launched_at | - | | OS-SRV-USG:terminated_at | - | | accessIPv4 | | | accessIPv6 | | | config_drive | | | created | 2014-03-31T15:04:10Z | | fault | {"message": "RPC do_node_tear_down not allowed for node db2f5627-cb55-44d7-99dd-88c0a0eccd77 in state None | | | Traceback (most recent call last): | | | | | | File \"/usr/local/lib/python2.7/dist-packages/wsmeext/pecan.py\", line 77, in callfunction | | | result = f(self, *args, **kwar", "code": 500, "details": " File \"/opt/stack/nova/nova/compute/manager.py\", line 293, in decorated_function | | | return function(self, context, *args, **kwargs) | | | File \"/opt/stack/nova/nova/compute/manager.py\", line 2003, in run_instance | | | do_run_instance() | | | File \"/opt/stack/nova/nova/openstack/common/lockutils.py\", line 249, in inner | | | return f(*args, **kwargs) | | | File \"/opt/stack/nova/nova/compute/manager.py\", line 2002, in do_run_instance | | | legacy_bdm_in_spec) | | | File \"/opt/stack/nova/nova/compute/manager.py\", line 1150, in _run_instance | | | notify(\"error\", fault=e) # notify that build failed | | | File \"/opt/stack/nova/nova/openstack/common/excutils.py\", line 68, in __exit__ | | | six.reraise(self.type_, self.value, self.tb) | | | File \"/opt/stack/nova/nova/compute/manager.py\", line 1134, in _run_instance | | | instance, image_meta, legacy_bdm_in_spec) | | | File \"/opt/stack/nova/nova/compute/manager.py\", line 1287, in _build_instance | | | filter_properties, bdms, legacy_bdm_in_spec) | | | File \"/opt/stack/nova/nova/compute/manager.py\", line 1333, in _reschedule_or_error | | | self._log_original_error(exc_info, instance_uuid) | | | File \"/opt/stack/nova/nova/openstack/common/excutils.py\", line 68, in __exit__ | | | six.reraise(self.type_, self.value, self.tb) | | | File \"/opt/stack/nova/nova/compute/manager.py\", line 1328, in _reschedule_or_error | | | bdms, requested_networks) | | | File \"/opt/stack/nova/nova/compute/manager.py\", line 2053, in _shutdown_instance | | | requested_networks) | | | File \"/opt/stack/nova/nova/openstack/common/excutils.py\", line 68, in __exit__ | | | six.reraise(self.type_, self.value, self.tb) | | | File \"/opt/stack/nova/nova/compute/manager.py\", line 2043, in _shutdown_instance | | | block_device_info) | | | File \"/opt/stack/ironic/ironic/nova/virt/ironic/driver.py\", line 500, in destroy | | | icli.node.set_provision_state, node_uuid, 'deleted') | | | File \"/opt/stack/ironic/ironic/nova/virt/ironic/driver.py\", line 183, in _retry_if_service_is_unavailable | | | timer.start(interval=CONF.ironic.api_retry_interval).wait() | | | File \"/usr/local/lib/python2.7/dist-packages/eventlet/event.py\", line 116, in wait | | | return hubs.get_hub().switch() | | | File \"/usr/local/lib/python2.7/dist-packages/eventlet/hubs/hub.py\", line 187, in switch | | | return self.greenlet.switch() | | | File \"/opt/stack/nova/nova/openstack/common/loopingcall.py\", line 78, in _inner | | | self.f(*self.args, **self.kw) | | | File \"/opt/stack/ironic/ironic/nova/virt/ironic/driver.py\", line 171, in _request_api | | | func(*args) | | | File \"/opt/stack/python-ironicclient/ironicclient/v1/node.py\", line 102, in set_provision_state | | | return self._update(self._path(path), target, method='PUT') | | | File \"/opt/stack/python-ironicclient/ironicclient/common/base.py\", line 68, in _update | | | resp, body = self.api.json_request(method, url, body=body) | | | File \"/opt/stack/python-ironicclient/ironicclient/common/http.py\", line 186, in json_request | | | resp, body_iter = self._http_request(url, method, **kwargs) | | | File \"/opt/stack/python-ironicclient/ironicclient/common/http.py\", line 169, in _http_request | | | error_json.get('debuginfo')) | | | ", "created": "2014-03-31T15:04:18Z"} | | flavor | baremetal (ae187c1a-3604-413f-b5e8-d8fd0b687ddd) | | hostId | ea888db9bf4d0ee6a8188f9c70413951a362a970b297d0d59ec31cac | | id | e155d6c7-f4ba-4726-a892-3db2d8ee9c0d | | image | cirros-0.3.1-x86_64-uec (29d1326b-f5a2-42c0-a712-a81057612521) | | key_name | default | | metadata | {} | | name | ironictest | | os-extended-volumes:volumes_attached | [] | | public network | 172.24.4.4 | | status | ERROR | | tenant_id | 6fa62fa758e645659f5b2519c981a0b6 | | updated | 2014-03-31T15:04:18Z | | user_id | be6a18d4c46c452782eeea06754627a2 | +--------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+ 2014-03-31 14:11:46.580 13461 ERROR wsme.api [-] Server-side error: "RPC do_node_tear_down not allowed for node 632244aa-a2ff-40e7-b2dd-37c983691397 in state None Traceback (most recent call last):   File "/opt/stack/ironic/ironic/openstack/common/rpc/common.py", line 423, in catch_client_exception     return func(*args, **kwargs)   File "/opt/stack/ironic/ironic/conductor/manager.py", line 428, in do_node_tear_down     task.release_resources()   File "/opt/stack/ironic/ironic/openstack/common/excutils.py", line 70, in __exit__     six.reraise(self.type_, self.value, self.tb)   File "/opt/stack/ironic/ironic/conductor/manager.py", line 405, in do_node_tear_down     % {'node': node_id, 'state': node.provision_state}) InstanceDeployFailure: RPC do_node_tear_down not allowed for node 632244aa-a2ff-40e7-b2dd-37c983691397 in state None ". Detail: Traceback (most recent call last):   File "/usr/local/lib/python2.7/dist-packages/wsmeext/pecan.py", line 77, in callfunction     result = f(self, *args, **kwargs)   File "/opt/stack/ironic/ironic/api/controllers/v1/node.py", line 228, in provision     pecan.request.context, node_uuid, topic)   File "/opt/stack/ironic/ironic/conductor/rpcapi.py", line 205, in do_node_tear_down     topic=topic or self.topic)   File "/opt/stack/ironic/ironic/openstack/common/rpc/proxy.py", line 125, in call     result = rpc.call(context, real_topic, msg, timeout)   File "/opt/stack/ironic/ironic/openstack/common/rpc/__init__.py", line 112, in call     return _get_impl().call(CONF, context, topic, msg, timeout)   File "/opt/stack/ironic/ironic/openstack/common/rpc/impl_kombu.py", line 815, in call     rpc_amqp.get_connection_pool(conf, Connection))   File "/opt/stack/ironic/ironic/openstack/common/rpc/amqp.py", line 575, in call     rv = list(rv)   File "/opt/stack/ironic/ironic/openstack/common/rpc/amqp.py", line 540, in __iter__     raise result InstanceDeployFailure_Remote: RPC do_node_tear_down not allowed for node 632244aa-a2ff-40e7-b2dd-37c983691397 in state None Traceback (most recent call last):   File "/opt/stack/ironic/ironic/openstack/common/rpc/common.py", line 423, in catch_client_exception     return func(*args, **kwargs)   File "/opt/stack/ironic/ironic/conductor/manager.py", line 428, in do_node_tear_down     task.release_resources()   File "/opt/stack/ironic/ironic/openstack/common/excutils.py", line 70, in __exit__     six.reraise(self.type_, self.value, self.tb)   File "/opt/stack/ironic/ironic/conductor/manager.py", line 405, in do_node_tear_down     % {'node': node_id, 'state': node.provision_state}) InstanceDeployFailure: RPC do_node_tear_down not allowed for node 632244aa-a2ff-40e7-b2dd-37c983691397 in state None
2014-04-01 16:24:48 aeva black ironic: status New Triaged
2014-04-01 17:04:53 OpenStack Infra ironic: status Triaged In Progress
2014-04-03 15:25:13 aeva black tags icehouse-backport-potential
2014-04-09 15:35:29 OpenStack Infra ironic: assignee Lucas Alvares Gomes (lucasagomes) Dmitry "Divius" Tantsur (divius)
2014-04-09 16:59:44 Lucas Alvares Gomes ironic: assignee Dmitry "Divius" Tantsur (divius) Lucas Alvares Gomes (lucasagomes)
2014-04-10 21:27:59 OpenStack Infra ironic: status In Progress Fix Committed
2014-04-10 22:00:09 aeva black ironic: milestone juno-1 icehouse-rc2
2014-04-11 16:41:04 OpenStack Infra ironic: status Fix Committed Fix Released
2014-04-17 15:16:06 Thierry Carrez ironic: milestone icehouse-rc2 2014.1