From: Zack Cerza Date: Fri, 24 Mar 2017 18:33:36 +0000 (-0600) Subject: Patch gevent.Hub.handle_error X-Git-Tag: 1.1.0~436^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=a40fa12dc157a2b28e1646cf1d6a00acdd4b25d8;p=teuthology.git Patch gevent.Hub.handle_error So we don't miss out on any fun exceptions! Lifted from: https://github.com/ceph/calamari/commit/7edc4cfc7159175a552222700810dc943a0ca8ce Signed-off-by: Zack Cerza --- diff --git a/teuthology/__init__.py b/teuthology/__init__.py index d037f53a1..ffafee9af 100644 --- a/teuthology/__init__.py +++ b/teuthology/__init__.py @@ -19,6 +19,7 @@ monkey.patch_all( subprocess=False, ) import sys +from gevent.hub import Hub # Don't write pyc files sys.dont_write_bytecode = True @@ -93,3 +94,17 @@ def install_except_hook(): exc_traceback)) sys.__excepthook__(exc_type, exc_value, exc_traceback) sys.excepthook = log_exception + + +def patch_gevent_hub_error_handler(): + Hub._origin_handle_error = Hub.handle_error + + def custom_handle_error(self, context, type, value, tb): + if not issubclass(type, Hub.SYSTEM_ERROR + Hub.NOT_ERROR): + log.error("Uncaught exception (Hub)", exc_info=(type, value, tb)) + + self._origin_handle_error(context, type, value, tb) + + Hub.handle_error = custom_handle_error + +patch_gevent_hub_error_handler()