image_snapshot_pending state breaks havana nodes

Bug #1265618 reported by Dan Smith
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Fix Released
Undecided
Unassigned

Bug Description

Icehouse introduced a state called image_snapshot_pending which havana nodes do not understand. If they call save with expected_task_state="image_snapshot" they will crash on the new state.

2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp File "/opt/upstack/nova-havana/local/lib/python2.7/site-packages/nova/compute/manager.py", line 2341, in _snapshot_instance
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp update_task_state)
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp File "/opt/upstack/nova-havana/local/lib/python2.7/site-packages/nova/virt/libvirt/driver.py", line 1386, in snapshot
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp update_task_state(task_state=task_states.IMAGE_PENDING_UPLOAD)
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp File "/opt/upstack/nova-havana/local/lib/python2.7/site-packages/nova/compute/manager.py", line 2338, in update_task_state
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp instance.save(expected_task_state=expected_state)
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp File "/opt/upstack/nova-havana/local/lib/python2.7/site-packages/nova/objects/base.py", line 139, in wrapper
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp ctxt, self, fn.__name__, args, kwargs)
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp File "/opt/upstack/nova-havana/local/lib/python2.7/site-packages/nova/conductor/rpcapi.py", line 497, in object_action
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp objmethod=objmethod, args=args, kwargs=kwargs)
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp File "/opt/upstack/nova-havana/local/lib/python2.7/site-packages/nova/rpcclient.py", line 85, in call
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp return self._invoke(self.proxy.call, ctxt, method, **kwargs)
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp File "/opt/upstack/nova-havana/local/lib/python2.7/site-packages/nova/rpcclient.py", line 63, in _invoke
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp return cast_or_call(ctxt, msg, **self.kwargs)
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp File "/opt/upstack/nova-havana/local/lib/python2.7/site-packages/nova/openstack/common/rpc/proxy.py", line 126, in call
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp result = rpc.call(context, real_topic, msg, timeout)
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp File "/opt/upstack/nova-havana/local/lib/python2.7/site-packages/nova/openstack/common/rpc/__init__.py", line 139, in call
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp return _get_impl().call(CONF, context, topic, msg, timeout)
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp File "/opt/upstack/nova-havana/local/lib/python2.7/site-packages/nova/openstack/common/rpc/impl_kombu.py", line 816, in call
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp rpc_amqp.get_connection_pool(conf, Connection))
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp File "/opt/upstack/nova-havana/local/lib/python2.7/site-packages/nova/openstack/common/rpc/amqp.py", line 574, in call
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp rv = list(rv)
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp File "/opt/upstack/nova-havana/local/lib/python2.7/site-packages/nova/openstack/common/rpc/amqp.py", line 539, in __iter__
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp raise result
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp UnexpectedTaskStateError_Remote: Unexpected task state: expecting (u'image_snapshot',) but the actual state is image_snapshot_pending
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp Traceback (most recent call last):
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp File "/opt/upstack/nova/nova/conductor/manager.py", line 576, in _object_dispatch
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp return getattr(target, method)(context, *args, **kwargs)
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp File "/opt/upstack/nova/nova/objects/base.py", line 152, in wrapper
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp return fn(self, ctxt, *args, **kwargs)
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp File "/opt/upstack/nova/nova/objects/instance.py", line 459, in save
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp columns_to_join=_expected_cols(expected_attrs))
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp File "/opt/upstack/nova/nova/db/api.py", line 735, in instance_update_and_get_original
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp columns_to_join=columns_to_join)
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp File "/opt/upstack/nova/nova/db/sqlalchemy/api.py", line 130, in wrapper
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp return f(*args, **kwargs)
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp File "/opt/upstack/nova/nova/db/sqlalchemy/api.py", line 2200, in instance_update_and_get_original
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp columns_to_join=columns_to_join)
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp File "/opt/upstack/nova/nova/db/sqlalchemy/api.py", line 2251, in _instance_update
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp actual=actual_state, expected=expected)
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp UnexpectedTaskStateError: Unexpected task state: expecting (u'image_snapshot',) but the actual state is image_snapshot_pending
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp
2014-01-02 11:58:46.766 TRACE nova.openstack.common.rpc.amqp

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

Reviewed: https://review.openstack.org/64722
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=579301d0d35bc8fc971dc27a71b9bc13f9cd1850
Submitter: Jenkins
Branch: master

commit 579301d0d35bc8fc971dc27a71b9bc13f9cd1850
Author: Dan Smith <email address hidden>
Date: Thu Jan 2 11:33:42 2014 -0800

    Translate the snapshot_pending state for old instances

    Icehouse introduced an image_snapshot_pending state which Havana
    compute nodes do not understand. This adds a translation for that
    state when we are handling save() for a havana-era Instance object.

    Closes-bug: #1265618
    Change-Id: I36028defc3591cc6e31c7ba763a5c7f076832179

Changed in nova:
status: Confirmed → Fix Committed
Thierry Carrez (ttx)
Changed in nova:
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in nova:
milestone: icehouse-2 → 2014.1
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.