From 421e5cb2b4a3f1b5a8db58543b9cd96df62e9599 Mon Sep 17 00:00:00 2001 From: Armando Migliaccio Date: Fri, 6 Jan 2012 18:40:49 +0000 Subject: 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 --- nova/rpc/impl_kombu.py | 6 +++--- 1 file 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): -- cgit