Hey Mike, I have updated our patch for this https://github.com/NeCTAR-RC/nova/commit/debd88652bd9f32f91ab68dd1a3979a7cdc9ec80
Is that what you’re doing too? Cheers, Sam > On 20 May 2016, at 9:26 AM, Sam Morrison <sorri...@gmail.com> wrote: > > Ha, yeah have come across this too in our tempest runs. Haven’t had a chance > to look into it yet. But I think you are on the right track. Just need to > modify the tests. > > Cheers, > Sam > > > >> On 20 May 2016, at 1:25 AM, Mike Dorman <mdor...@godaddy.com> wrote: >> >> We are struggling a bit with the "Send up AZ and instance_name in system >> metadata” patch. It works fine under normal circumstances, but if there is >> a scheduler error (No valid host was found), then there is a failure when >> transitioning the instance to an error state, and the instance gets stuck in >> scheduling forever: >> >> 2016-05-19 08:15:07.677 24589 WARNING nova.scheduler.utils >> [req-b9e5b8b4-10bd-44d5-98d0-d89db70698bc 02b775qlx5jA >> f48e57277a7a484290ba9afdc49a21a9 - - -] [instance: >> 71009301-7377-49f7-9f9e-f4e718bd5c83] Setting instance to ERROR state. >> 2016-05-19 08:15:07.679 24589 DEBUG nova.objects.instance >> [req-b9e5b8b4-10bd-44d5-98d0-d89db70698bc 02b775qlx5jA >> f48e57277a7a484290ba9afdc49a21a9 - - -] Lazy-loading `system_metadata' on >> Instance uuid 71009301-7377-49f7-9f9e-f4e718bd5c83 obj_load_attr >> /usr/lib/python2.7/site-packages/nova/objects/instance.py:873 >> 2016-05-19 08:15:07.741 24589 ERROR oslo_messaging.rpc.dispatcher >> [req-b9e5b8b4-10bd-44d5-98d0-d89db70698bc 02b775qlx5jA >> f48e57277a7a484290ba9afdc49a21a9 - - -] Exception during message handling: >> Object action obj_load_attr failed because: attribute id not lazy-loadable >> 2016-05-19 08:15:07.741 24589 ERROR oslo_messaging.rpc.dispatcher Traceback >> (most recent call last): >> 2016-05-19 08:15:07.741 24589 ERROR oslo_messaging.rpc.dispatcher File >> "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line >> 142, in _dispatch_and_reply >> 2016-05-19 08:15:07.741 24589 ERROR oslo_messaging.rpc.dispatcher >> executor_callback)) >> 2016-05-19 08:15:07.741 24589 ERROR oslo_messaging.rpc.dispatcher File >> "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line >> 186, in _dispatch >> 2016-05-19 08:15:07.741 24589 ERROR oslo_messaging.rpc.dispatcher >> executor_callback) >> 2016-05-19 08:15:07.741 24589 ERROR oslo_messaging.rpc.dispatcher File >> "/usr/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py", line >> 129, in _do_dispatch >> 2016-05-19 08:15:07.741 24589 ERROR oslo_messaging.rpc.dispatcher result >> = func(ctxt, **new_args) >> 2016-05-19 08:15:07.741 24589 ERROR oslo_messaging.rpc.dispatcher File >> "/usr/lib/python2.7/site-packages/nova/conductor/manager.py", line 752, in >> build_instances >> 2016-05-19 08:15:07.741 24589 ERROR oslo_messaging.rpc.dispatcher exc, >> request_spec) >> 2016-05-19 08:15:07.741 24589 ERROR oslo_messaging.rpc.dispatcher File >> "/usr/lib/python2.7/site-packages/nova/conductor/manager.py", line 625, in >> _set_vm_state_and_notify >> 2016-05-19 08:15:07.741 24589 ERROR oslo_messaging.rpc.dispatcher ex, >> request_spec, self.db) >> 2016-05-19 08:15:07.741 24589 ERROR oslo_messaging.rpc.dispatcher File >> "/usr/lib/python2.7/site-packages/nova/scheduler/utils.py", line 111, in >> set_vm_state_and_notify >> 2016-05-19 08:15:07.741 24589 ERROR oslo_messaging.rpc.dispatcher >> instance.save() >> 2016-05-19 08:15:07.741 24589 ERROR oslo_messaging.rpc.dispatcher File >> "/usr/lib/python2.7/site-packages/oslo_versionedobjects/base.py", line 213, >> in wrapper >> 2016-05-19 08:15:07.741 24589 ERROR oslo_messaging.rpc.dispatcher return >> fn(self, *args, **kwargs) >> 2016-05-19 08:15:07.741 24589 ERROR oslo_messaging.rpc.dispatcher File >> "/usr/lib/python2.7/site-packages/nova/objects/instance.py", line 615, in >> save >> 2016-05-19 08:15:07.741 24589 ERROR oslo_messaging.rpc.dispatcher >> self._ensure_cells_system_metadata() >> 2016-05-19 08:15:07.741 24589 ERROR oslo_messaging.rpc.dispatcher File >> "/usr/lib/python2.7/site-packages/nova/objects/instance.py", line 555, in >> _ensure_cells_system_metadata >> 2016-05-19 08:15:07.741 24589 ERROR oslo_messaging.rpc.dispatcher >> self.system_metadata[u'instance_name'] = self.name >> 2016-05-19 08:15:07.741 24589 ERROR oslo_messaging.rpc.dispatcher File >> "/usr/lib/python2.7/site-packages/nova/objects/instance.py", line 224, in >> name >> 2016-05-19 08:15:07.741 24589 ERROR oslo_messaging.rpc.dispatcher >> base_name = CONF.instance_name_template % self.id >> 2016-05-19 08:15:07.741 24589 ERROR oslo_messaging.rpc.dispatcher File >> "/usr/lib/python2.7/site-packages/oslo_versionedobjects/base.py", line 66, >> in getter >> 2016-05-19 08:15:07.741 24589 ERROR oslo_messaging.rpc.dispatcher >> self.obj_load_attr(name) >> 2016-05-19 08:15:07.741 24589 ERROR oslo_messaging.rpc.dispatcher File >> "/usr/lib/python2.7/site-packages/nova/objects/instance.py", line 864, in >> obj_load_attr >> 2016-05-19 08:15:07.741 24589 ERROR oslo_messaging.rpc.dispatcher >> reason='attribute %s not lazy-loadable' % attrname) >> 2016-05-19 08:15:07.741 24589 ERROR oslo_messaging.rpc.dispatcher >> ObjectActionError: Object action obj_load_attr failed because: attribute id >> not lazy-loadable >> 2016-05-19 08:15:07.741 24589 ERROR oslo_messaging.rpc.dispatcher >> >> >> The problem is that _ensure_cells_system_metadata is referencing self.name >> before the object is actually loaded from the database, so only uuid and I >> think vm_state are set at that point. The name accessor method references >> self.id, which (for some reason) is not lazy loadable. >> >> So I tried moving the _ensure_cells_system_metadata later in the save >> method, after the object is loaded from the database (here: >> https://github.com/openstack/nova/blob/stable/liberty/nova/objects/instance.py#L676 >> ) That seems to work in practice, but it causes some of the tox tests to >> fail: https://gist.github.com/misterdorm/cc7dfd235ebcc2a23009b9115b58e4d5 >> >> Anyways, I’m at a bit of a loss here and curious if anybody might have some >> better insights. >> >> Thanks, >> Mike >> >> >> >> From: Sam Morrison <sorri...@gmail.com> >> Date: Wednesday, May 4, 2016 at 6:23 PM >> To: Mike Dorman <mdor...@godaddy.com> >> Cc: OpenStack Operators <openstack-operators@lists.openstack.org> >> Subject: Re: [Openstack-operators] Nova cells patches against Liberty >> >> >> Hi Mike, >> >> I’ve also been working on these and have some updated patches at: >> >> https://github.com/NeCTAR-RC/nova/commits/stable/liberty-cellsv1 >> >> There are a couple of patches that you have in your tree that need updating >> for Liberty. Mainly around supporting the v2.1 API and more things moved to >> objects. I have also written some tests for some more of them too. I haven’t >> tested all of these functionally >> yet but they pass all tox tests. >> >> Cheers, >> Sam >> >> >> >> >> On 5 May 2016, at 4:19 AM, Mike Dorman <mdor...@godaddy.com> wrote: >> >> I went ahead and pulled out the Nova cells patches we’re running against >> Liberty so that others can use them if so desired. >> >> https://github.com/godaddy/openstack-nova-patches >> >> Usual disclaimers apply here, your mileage may vary, these may not work as >> expected in your environment, etc. We have tested these at a basic level >> (unit tests), but are not running these for Liberty in real production yet. >> >> Mike >> >> >> >> >> >> >> _______________________________________________ >> OpenStack-operators mailing list >> OpenStack-operators@lists.openstack.org >> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-operators >> >> >> >> >> >> > _______________________________________________ OpenStack-operators mailing list OpenStack-operators@lists.openstack.org http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-operators