diff options
| author | Armando Migliaccio <armando.migliaccio@eu.citrix.com> | 2012-01-06 18:40:49 +0000 |
|---|---|---|
| committer | Armando Migliaccio <armando.migliaccio@eu.citrix.com> | 2012-01-06 18:40:49 +0000 |
| commit | 421e5cb2b4a3f1b5a8db58543b9cd96df62e9599 (patch) | |
| tree | dc072bb603be72dc6d3adb4ab9dc9c8f6f7212ff | |
| parent | de4fb9302aab979ac3dbb8b2e62c9f9255f8f16f (diff) | |
| download | nova-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.py | 6 |
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): |
