Merge "Log unhandled exceptions in worker" into stable/ocata
This commit is contained in:
commit
6dbc4802aa
|
@ -14,9 +14,11 @@
|
|||
# limitations under the License.
|
||||
|
||||
import eventlet.queue
|
||||
import functools
|
||||
|
||||
from oslo_log import log as logging
|
||||
import oslo_messaging
|
||||
from oslo_utils import excutils
|
||||
from oslo_utils import uuidutils
|
||||
from osprofiler import profiler
|
||||
|
||||
|
@ -38,6 +40,18 @@ LOG = logging.getLogger(__name__)
|
|||
CANCEL_RETRIES = 3
|
||||
|
||||
|
||||
def log_exceptions(func):
|
||||
@functools.wraps(func)
|
||||
def exception_wrapper(*args, **kwargs):
|
||||
try:
|
||||
return func(*args, **kwargs)
|
||||
except Exception:
|
||||
with excutils.save_and_reraise_exception():
|
||||
LOG.exception('Unhandled exception in %s', func.__name__)
|
||||
|
||||
return exception_wrapper
|
||||
|
||||
|
||||
@profiler.trace_cls("rpc")
|
||||
class WorkerService(object):
|
||||
"""Service that has 'worker' actor in convergence.
|
||||
|
@ -150,6 +164,7 @@ class WorkerService(object):
|
|||
stack)
|
||||
|
||||
@context.request_context
|
||||
@log_exceptions
|
||||
def check_resource(self, cnxt, resource_id, current_traversal, data,
|
||||
is_update, adopt_stack_data):
|
||||
"""Process a node in the dependency graph.
|
||||
|
@ -183,6 +198,7 @@ class WorkerService(object):
|
|||
stack.id, msg_queue)
|
||||
|
||||
@context.request_context
|
||||
@log_exceptions
|
||||
def cancel_check_resource(self, cnxt, stack_id):
|
||||
"""Cancel check_resource for given stack.
|
||||
|
||||
|
|
Loading…
Reference in New Issue