summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArmando Migliaccio <armando.migliaccio@eu.citrix.com>2012-01-06 18:40:49 +0000
committerArmando Migliaccio <armando.migliaccio@eu.citrix.com>2012-01-06 18:40:49 +0000
commit421e5cb2b4a3f1b5a8db58543b9cd96df62e9599 (patch)
treedc072bb603be72dc6d3adb4ab9dc9c8f6f7212ff
parentde4fb9302aab979ac3dbb8b2e62c9f9255f8f16f (diff)
downloadnova-421e5cb2b4a3f1b5a8db58543b9cd96df62e9599.tar.gz
nova-421e5cb2b4a3f1b5a8db58543b9cd96df62e9599.tar.xz
nova-421e5cb2b4a3f1b5a8db58543b9cd96df62e9599.zip
Bug #894683: nova.service does not handle attribute specific exceptions and client hangs
As Sateesh points out nova.service.Service.__getattr__ throws an AttributeError exception when the upcall method is not available. However nova.rpc should catch all exceptions. This does not happen in this specific case because the following statement was outside the try-catch-all: node_func = getattr(self.proxy, str(method)) Change-Id: I437c88783bca037e4054078d2687ef41c8fc2b83
-rw-r--r--nova/rpc/impl_kombu.py6
1 files changed, 3 insertions, 3 deletions
diff --git a/nova/rpc/impl_kombu.py b/nova/rpc/impl_kombu.py
index 82eb651de..9ed1e4e6f 100644
--- a/nova/rpc/impl_kombu.py
+++ b/nova/rpc/impl_kombu.py
@@ -642,10 +642,10 @@ class ProxyCallback(object):
object and calls it.
"""
- node_func = getattr(self.proxy, str(method))
- node_args = dict((str(k), v) for k, v in args.iteritems())
- # NOTE(vish): magic is fun!
try:
+ node_func = getattr(self.proxy, str(method))
+ node_args = dict((str(k), v) for k, v in args.iteritems())
+ # NOTE(vish): magic is fun!
rval = node_func(context=ctxt, **node_args)
# Check if the result was a generator
if inspect.isgenerator(rval):