← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1361183] [NEW] Shouldn't pass instance.uuid when call _set_instance_error_state

 

Public bug reported:

This found by review code.

We already turn the _set_instance_error_state to use instance object. but there https://github.com/openstack/nova/blob/master/nova/compute/manager.py#L1942
still pass the uuid.

When there is exception raised, will get error as below:
2014-08-25 19:57:31.784 ERROR oslo.messaging.rpc.dispatcher [req-164071ff-f94e-4cb4-999b-2d595c6e77c6 admin admin] Exception during message handling: string in
dices must be integers, not str
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher Traceback (most recent call last):
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/usr/local/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 134, in _dis
patch_and_reply
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     incoming.message))
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/usr/local/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 177, in _dis
patch
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     return self._do_dispatch(endpoint, method, ctxt, args)
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/usr/local/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 123, in _do_
dispatch
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     result = getattr(endpoint, method)(ctxt, **new_args)
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/opt/stack/nova/nova/exception.py", line 88, in wrapped
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     payload)
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/opt/stack/nova/nova/openstack/common/excutils.py", line 82, in __exit__
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     six.reraise(self.type_, self.value, self.tb)
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/opt/stack/nova/nova/exception.py", line 71, in wrapped
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     return f(self, context, *args, **kw)
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/opt/stack/nova/nova/compute/manager.py", line 296, in decorated_function
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     pass
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/opt/stack/nova/nova/openstack/common/excutils.py", line 82, in __exit__
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     six.reraise(self.type_, self.value, self.tb)
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/opt/stack/nova/nova/compute/manager.py", line 282, in decorated_function
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     return function(self, context, *args, **kwargs)
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/opt/stack/nova/nova/compute/manager.py", line 346, in decorated_function
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     return function(self, context, *args, **kwargs)
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/opt/stack/nova/nova/compute/manager.py", line 324, in decorated_function
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     kwargs['instance'], e, sys.exc_info())
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/opt/stack/nova/nova/openstack/common/excutils.py", line 82, in __exit__
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     six.reraise(self.type_, self.value, self.tb)
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/opt/stack/nova/nova/compute/manager.py", line 312, in decorated_function
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     return function(self, context, *args, **kwargs)
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/opt/stack/nova/nova/compute/manager.py", line 1984, in build_and_run_instance
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     node, limits)
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/opt/stack/nova/nova/openstack/common/lockutils.py", line 325, in inner
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     return f(*args, **kwargs)
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/opt/stack/nova/nova/compute/manager.py", line 1942, in do_build_and_run_instance
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     self._set_instance_error_state(context, instance.uuid)
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/opt/stack/nova/nova/compute/manager.py", line 644, in _set_instance_error_state
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     instance_uuid = instance['uuid']
2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher TypeError: string indices must be integers, not str

** Affects: nova
     Importance: Undecided
     Assignee: Alex Xu (xuhj)
         Status: Triaged

** Changed in: nova
       Status: New => Triaged

** Changed in: nova
     Assignee: (unassigned) => Alex Xu (xuhj)

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1361183

Title:
  Shouldn't pass instance.uuid when call _set_instance_error_state

Status in OpenStack Compute (Nova):
  Triaged

Bug description:
  This found by review code.

  We already turn the _set_instance_error_state to use instance object. but there https://github.com/openstack/nova/blob/master/nova/compute/manager.py#L1942
  still pass the uuid.

  When there is exception raised, will get error as below:
  2014-08-25 19:57:31.784 ERROR oslo.messaging.rpc.dispatcher [req-164071ff-f94e-4cb4-999b-2d595c6e77c6 admin admin] Exception during message handling: string in
  dices must be integers, not str
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher Traceback (most recent call last):
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/usr/local/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 134, in _dis
  patch_and_reply
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     incoming.message))
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/usr/local/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 177, in _dis
  patch
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     return self._do_dispatch(endpoint, method, ctxt, args)
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/usr/local/lib/python2.7/dist-packages/oslo/messaging/rpc/dispatcher.py", line 123, in _do_
  dispatch
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     result = getattr(endpoint, method)(ctxt, **new_args)
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/opt/stack/nova/nova/exception.py", line 88, in wrapped
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     payload)
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/opt/stack/nova/nova/openstack/common/excutils.py", line 82, in __exit__
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     six.reraise(self.type_, self.value, self.tb)
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/opt/stack/nova/nova/exception.py", line 71, in wrapped
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     return f(self, context, *args, **kw)
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/opt/stack/nova/nova/compute/manager.py", line 296, in decorated_function
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     pass
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/opt/stack/nova/nova/openstack/common/excutils.py", line 82, in __exit__
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     six.reraise(self.type_, self.value, self.tb)
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/opt/stack/nova/nova/compute/manager.py", line 282, in decorated_function
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     return function(self, context, *args, **kwargs)
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/opt/stack/nova/nova/compute/manager.py", line 346, in decorated_function
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     return function(self, context, *args, **kwargs)
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/opt/stack/nova/nova/compute/manager.py", line 324, in decorated_function
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     kwargs['instance'], e, sys.exc_info())
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/opt/stack/nova/nova/openstack/common/excutils.py", line 82, in __exit__
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     six.reraise(self.type_, self.value, self.tb)
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/opt/stack/nova/nova/compute/manager.py", line 312, in decorated_function
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     return function(self, context, *args, **kwargs)
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/opt/stack/nova/nova/compute/manager.py", line 1984, in build_and_run_instance
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     node, limits)
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/opt/stack/nova/nova/openstack/common/lockutils.py", line 325, in inner
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     return f(*args, **kwargs)
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/opt/stack/nova/nova/compute/manager.py", line 1942, in do_build_and_run_instance
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     self._set_instance_error_state(context, instance.uuid)
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher   File "/opt/stack/nova/nova/compute/manager.py", line 644, in _set_instance_error_state
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher     instance_uuid = instance['uuid']
  2014-08-25 19:57:31.784 TRACE oslo.messaging.rpc.dispatcher TypeError: string indices must be integers, not str

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1361183/+subscriptions


Follow ups

References