there is always an exception in some methods like:
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/nova/compute/manager.py", line 167, in decorated_function
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp return function(self, context, *args, **kwargs)
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/nova/compute/manager.py", line 202, in decorated_function
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp kwargs['instance']['uuid'], e, sys.exc_info())
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp KeyError: 'instance'
the exception can be raised by some action like 'stop_instance', 'snapshot_instance', '_rotate_backups' etc.
wrap_instance_fault will catch these exception and log into database, But I found it raised a exception caused by can not find 'instance' kwarg.
This can lead to lose exception information in database, and incorrect exception in logfile.
the completely log like:
========================
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp Traceback (most recent call last):
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/nova/openstack/common/rpc/amqp.py", line 275, in _process_data
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp rval = self.proxy.dispatch(ctxt, version, method, **args)
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/nova/openstack/common/rpc/dispatcher.py", line 145, in dispatch
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp return getattr(proxyobj, method)(ctxt, **kwargs)
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/nova/exception.py", line 117, in wrapped
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp temp_level, payload)
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp File "/usr/lib/python2.7/contextlib.py", line 24, in __exit__
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp self.gen.next()
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/nova/exception.py", line 92, in wrapped
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp return f(*args, **kw)
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/nova/compute/manager.py", line 181, in decorated_function
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp pass
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp File "/usr/lib/python2.7/contextlib.py", line 24, in __exit__
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp self.gen.next()
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/nova/compute/manager.py", line 167, in decorated_function
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp return function(self, context, *args, **kwargs)
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/nova/compute/manager.py", line 202, in decorated_function
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp kwargs['instance']['uuid'], e, sys.exc_info())
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp File "/usr/lib/python2.7/contextlib.py", line 24, in __exit__
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp self.gen.next()
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/nova/compute/manager.py", line 196, in decorated_function
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp return function(self, context, *args, **kwargs)
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/nova/compute/manager.py", line 944, in stop_instance
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp final_state=vm_states.STOPPED)
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/nova/exception.py", line 117, in wrapped
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp temp_level, payload)
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp File "/usr/lib/python2.7/contextlib.py", line 24, in __exit__
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp self.gen.next()
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/nova/exception.py", line 92, in wrapped
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp return f(*args, **kw)
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/nova/compute/manager.py", line 181, in decorated_function
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp pass
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp File "/usr/lib/python2.7/contextlib.py", line 24, in __exit__
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp self.gen.next()
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/nova/compute/manager.py", line 167, in decorated_function
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp return function(self, context, *args, **kwargs)
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/nova/compute/manager.py", line 202, in decorated_function
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp kwargs['instance']['uuid'], e, sys.exc_info())
2012-10-16 14:35:39 TRACE nova.openstack.common.rpc.amqp KeyError: 'instance'
---------------------
2012-10-16 13:37:15 TRACE nova.openstack.common.rpc.amqp Traceback (most recent call last):
2012-10-16 13:37:15 TRACE nova.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/nova/openstack/common/rpc/amqp.py", line 275, in _process_data
2012-10-16 13:37:15 TRACE nova.openstack.common.rpc.amqp rval = self.proxy.dispatch(ctxt, version, method, **args)
2012-10-16 13:37:15 TRACE nova.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/nova/openstack/common/rpc/dispatcher.py", line 145, in dispatch
2012-10-16 13:37:15 TRACE nova.openstack.common.rpc.amqp return getattr(proxyobj, method)(ctxt, **kwargs)
2012-10-16 13:37:15 TRACE nova.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/nova/exception.py", line 117, in wrapped
2012-10-16 13:37:15 TRACE nova.openstack.common.rpc.amqp temp_level, payload)
2012-10-16 13:37:15 TRACE nova.openstack.common.rpc.amqp File "/usr/lib/python2.7/contextlib.py", line 24, in __exit__
2012-10-16 13:37:15 TRACE nova.openstack.common.rpc.amqp self.gen.next()
2012-10-16 13:37:15 TRACE nova.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/nova/exception.py", line 92, in wrapped
2012-10-16 13:37:15 TRACE nova.openstack.common.rpc.amqp return f(*args, **kw)
2012-10-16 13:37:15 TRACE nova.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/nova/compute/manager.py", line 181, in decorated_function
2012-10-16 13:37:15 TRACE nova.openstack.common.rpc.amqp pass
2012-10-16 13:37:15 TRACE nova.openstack.common.rpc.amqp File "/usr/lib/python2.7/contextlib.py", line 24, in __exit__
2012-10-16 13:37:15 TRACE nova.openstack.common.rpc.amqp self.gen.next()
2012-10-16 13:37:15 TRACE nova.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/nova/compute/manager.py", line 167, in decorated_function
2012-10-16 13:37:15 TRACE nova.openstack.common.rpc.amqp return function(self, context, *args, **kwargs)
2012-10-16 13:37:15 TRACE nova.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/nova/compute/manager.py", line 202, in decorated_function
2012-10-16 13:37:15 TRACE nova.openstack.common.rpc.amqp kwargs['instance']['uuid'], e, sys.exc_info())
2012-10-16 13:37:15 TRACE nova.openstack.common.rpc.amqp File "/usr/lib/python2.7/contextlib.py", line 24, in __exit__
2012-10-16 13:37:15 TRACE nova.openstack.common.rpc.amqp self.gen.next()
2012-10-16 13:37:15 TRACE nova.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/nova/compute/manager.py", line 196, in decorated_function
2012-10-16 13:37:15 TRACE nova.openstack.common.rpc.amqp return function(self, context, *args, **kwargs)
2012-10-16 13:37:15 TRACE nova.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/nova/compute/manager.py", line 1178, in snapshot_instance
2012-10-16 13:37:15 TRACE nova.openstack.common.rpc.amqp self._rotate_backups(context, instance, backup_type, rotation)
2012-10-16 13:37:15 TRACE nova.openstack.common.rpc.amqp File "/usr/local/lib/python2.7/dist-packages/nova/compute/manager.py", line 202, in decorated_function
2012-10-16 13:37:15 TRACE nova.openstack.common.rpc.amqp kwargs['instance']['uuid'], e, sys.exc_info())
2012-10-16 13:37:15 TRACE nova.openstack.common.rpc.amqp KeyError: 'instance'
This should be a one line change to nova/compute/ manager. py