[Openstack] [nova] Havana -> Icehouse upgrades with cells

Andrew Laski andrew.laski at rackspace.com
Fri Apr 18 12:48:50 UTC 2014


On 04/16/14 at 05:42pm, Sam Morrison wrote:
>I’ve been playing with having an Icehouse API cell and a Havana compute cell to see how it goes and to plan how we upgrade to Icehouse.
>
>Most things actually work out of the box, booting etc works which I would think is the hard one.
>Unfortunately some of the simple ones fail, after some brief testing reboot, pause and unpause are affected.
>These require the object_backport() method of the conductor rpcapi that only came in Icehouse.

There were some significant changes to how cells overrides the compute 
api at the global level to send messages to a child cell for certain 
methods.  The affected methods can be found in nova/compute/cells_api.py 
in the cells_compatible list in the ComputeRPCAPIRedirect class.

>
>Error you get is below, I’m wondering if this method could be back ported to Havana to allow this to work?
>Anyone else been working in this area?

I'm not aware of anyone else working in this area, and we at Rackspace 
haven't been.  While there has been significant progress towards running 
older computes while upgrading the rest of the system in a non cells 
deployment that upgradeability effort hasn't been put into cells yet.  
But if backporting that method is all it takes to get things working 
well enough I think it's worth putting it up for review and get some 
feedback from the stable-maintenance team.

>
>
>Traceback (most recent call last):
>File "/opt/nova/nova/openstack/common/rpc/amqp.py", line 461, in _process_data
>  **args)
>File "/opt/nova/nova/openstack/common/rpc/dispatcher.py", line 172, in dispatch
>  result = getattr(proxyobj, method)(ctxt, **kwargs)
>File "/opt/nova/nova/cells/rpc_driver.py", line 184, in process_message
>     message = self.msg_runner.message_from_json(message)
>File "/opt/nova/nova/cells/messaging.py", line 1553, in message_from_json
>  message_dict['ctxt'], v)
>File "/opt/nova/nova/objects/base.py", line 566, in deserialize_entity
>  entity = self._process_object(context, entity)
>File "/opt/nova/nova/objects/base.py", line 536, in _process_object
>   e.kwargs['supported'])
>File "/opt/nova/nova/conductor/api.py", line 331, in object_backport
>   return self._manager.object_backport(context, objinst, target_version)
>File "/opt/nova/nova/conductor/rpcapi.py", line 502, in object_backport
>   target_version=target_version)
>File "/opt/nova/nova/rpcclient.py", line 85, in call
>   return self._invoke(self.proxy.call, ctxt, method, **kwargs)
>File "/opt/nova/nova/rpcclient.py", line 63, in _invoke
>  return cast_or_call(ctxt, msg, **self.kwargs)
>File "/opt/nova/nova/openstack/common/rpc/proxy.py", line 126, in call
>  result = rpc.call(context, real_topic, msg, timeout)
>File "/opt/nova/nova/openstack/common/rpc/__init__.py", line 139, in call
>  return _get_impl().call(CONF, context, topic, msg, timeout)
>File "/opt/nova/nova/openstack/common/rpc/impl_kombu.py", line 824, in call
>  rpc_amqp.get_connection_pool(conf, Connection))
>File "/opt/nova/nova/openstack/common/rpc/amqp.py", line 574, in call
>  rv = list(rv)
>File "/opt/nova/nova/openstack/common/rpc/amqp.py", line 539, in __iter__
>  raise result
>RemoteError: Remote error: UnsupportedRpcVersion Specified RPC version, 1.62, not supported by this endpoint.
>
>
>(also note that this is hard coded to use conductor so if you don’t use conductor you’ll just get an RPC timeout.)
>   I think this is a bug but not my first concern.
>
>
>
>
>Thanks,
>Sam
>
>
>
>_______________________________________________
>Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
>Post to     : openstack at lists.openstack.org
>Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack




More information about the Openstack mailing list