On 11/21/2015 3:47 PM, Belmiro Moreira wrote:
Hi,
We are about to upgrade nova to kilo using cells and we noticed
the resize/migrate functionality is not working properly.

The instance is correctly resized/migrated but fails to
“confirm resize” with the following trace:

2015-11-21 22:40:49.804 26786 ERROR nova.api.openstack.wsgi
[req-67f6a225-602c-426c-a33a-02c3f5e3093d belmiro
40c7729b-c8e5-432f-81d5-a41543c8bf13] Exception handling resource:
'NoneType' object has no attribute '__getitem__'
2015-11-21 22:40:49.804 26786 TRACE nova.api.openstack.wsgi Traceback
(most recent call last):
2015-11-21 22:40:49.804 26786 TRACE nova.api.openstack.wsgi   File
"/usr/lib/python2.7/site-packages/nova/api/openstack/wsgi.py", line 821,
in _process_stack
2015-11-21 22:40:49.804 26786 TRACE nova.api.openstack.wsgi
action_result = self.dispatch(meth, request, action_args)
2015-11-21 22:40:49.804 26786 TRACE nova.api.openstack.wsgi   File
"/usr/lib/python2.7/site-packages/nova/api/openstack/wsgi.py", line 911,
in dispatch
2015-11-21 22:40:49.804 26786 TRACE nova.api.openstack.wsgi     return
method(req=request, **action_args)
2015-11-21 22:40:49.804 26786 TRACE nova.api.openstack.wsgi   File
"/usr/lib/python2.7/site-packages/nova/api/openstack/compute/servers.py", line
823, in _action_confirm_resize
2015-11-21 22:40:49.804 26786 TRACE nova.api.openstack.wsgi
self.compute_api.confirm_resize(context, instance)
2015-11-21 22:40:49.804 26786 TRACE nova.api.openstack.wsgi   File
"/usr/lib/python2.7/site-packages/nova/compute/api.py", line 233, in wrapped
2015-11-21 22:40:49.804 26786 TRACE nova.api.openstack.wsgi     return
func(self, context, target, *args, **kwargs)
2015-11-21 22:40:49.804 26786 TRACE nova.api.openstack.wsgi   File
"/usr/lib/python2.7/site-packages/nova/compute/api.py", line 222, in inner
2015-11-21 22:40:49.804 26786 TRACE nova.api.openstack.wsgi     return
function(self, context, instance, *args, **kwargs)
2015-11-21 22:40:49.804 26786 TRACE nova.api.openstack.wsgi   File
"/usr/lib/python2.7/site-packages/nova/compute/api.py", line 250, in
_wrapped
2015-11-21 22:40:49.804 26786 TRACE nova.api.openstack.wsgi     return
fn(self, context, instance, *args, **kwargs)
2015-11-21 22:40:49.804 26786 TRACE nova.api.openstack.wsgi   File
"/usr/lib/python2.7/site-packages/nova/compute/api.py", line 203, in inner
2015-11-21 22:40:49.804 26786 TRACE nova.api.openstack.wsgi     return
f(self, context, instance, *args, **kw)
2015-11-21 22:40:49.804 26786 TRACE nova.api.openstack.wsgi   File
"/usr/lib/python2.7/site-packages/nova/compute/api.py", line 2452, in
confirm_resize
2015-11-21 22:40:49.804 26786 TRACE nova.api.openstack.wsgi     deltas =
self._downsize_quota_delta(context, instance)
2015-11-21 22:40:49.804 26786 TRACE nova.api.openstack.wsgi   File
"/usr/lib/python2.7/site-packages/nova/compute/api.py", line 2537, in
_downsize_quota_delta
2015-11-21 22:40:49.804 26786 TRACE nova.api.openstack.wsgi     return
API._resize_quota_delta(context, new_flavor, old_flavor, 1, -1)
2015-11-21 22:40:49.804 26786 TRACE nova.api.openstack.wsgi   File
"/usr/lib/python2.7/site-packages/nova/compute/api.py", line 2504, in
_resize_quota_delta
2015-11-21 22:40:49.804 26786 TRACE nova.api.openstack.wsgi     if
compare * _quota_delta('vcpus') > 0:
2015-11-21 22:40:49.804 26786 TRACE nova.api.openstack.wsgi   File
"/usr/lib/python2.7/site-packages/nova/compute/api.py", line 2501, in
_quota_delta
2015-11-21 22:40:49.804 26786 TRACE nova.api.openstack.wsgi     return
sense * (new_flavor[resource] - old_flavor[resource])
2015-11-21 22:40:49.804 26786 TRACE nova.api.openstack.wsgi TypeError:
'NoneType' object has no attribute '__getitem__'
2015-11-21 22:40:49.804 26786 TRACE nova.api.openstack.wsgi



I can't reproduce in master so this must have been fixed meanwhile,
however I can't identify the patch.

Is someone experiencing the same problem? and know the commit that
fixed it?

thanks,
Belmiro


_______________________________________________
OpenStack-operators mailing list
[email protected]
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-operators


I'm not seeing anything very different in that specific utility code path in liberty or mitaka, so I'd have to assume there is something going on in the online flavor migration when lazy-loading the flavor from the instance object such that the old or new flavor is None.

Are you rolling to kilo 2015.1.0 or the latest release 2015.1.2?

Are there any debug log messages before the error/trace where it says it's lazy-loading the flavor and doing anything there? If you know the instance in question, you could check the instance_system_metadata and instance_extra tables to see if the old/new flavor information has been migrated successfully.

I don't think you'd have this problem in master because the online flavor migration was dropped in liberty (there is a DB migration that stops you from continuing if you haven't manually migrated the flavors yet).

--

Thanks,

Matt Riedemann


_______________________________________________
OpenStack-operators mailing list
[email protected]
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-operators

Reply via email to