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
This commit is contained in:
		@@ -642,10 +642,10 @@ class ProxyCallback(object):
 | 
			
		||||
        object and calls it.
 | 
			
		||||
        """
 | 
			
		||||
 | 
			
		||||
        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!
 | 
			
		||||
        try:
 | 
			
		||||
            rval = node_func(context=ctxt, **node_args)
 | 
			
		||||
            # Check if the result was a generator
 | 
			
		||||
            if inspect.isgenerator(rval):
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user