From 90c9adc8dc7246921862fef679e35c122af21939 Mon Sep 17 00:00:00 2001 From: shortcutme Date: Thu, 9 Feb 2017 01:53:02 +0100 Subject: [PATCH] Fix error reporting on asnyc websocket functions --- src/Ui/UiWebsocket.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Ui/UiWebsocket.py b/src/Ui/UiWebsocket.py index d3aa3a7a..381dd2b7 100644 --- a/src/Ui/UiWebsocket.py +++ b/src/Ui/UiWebsocket.py @@ -159,8 +159,17 @@ class UiWebsocket(object): return permissions def asyncWrapper(self, func): + def asyncErrorWatcher(func, *args, **kwargs): + try: + func(*args, **kwargs) + except Exception, err: + if config.debug: # Allow websocket errors to appear on /Debug + sys.modules["main"].DebugHook.handleError() + self.log.error("WebSocket handleRequest error: %s" % Debug.formatException(err)) + self.cmd("error", "Internal error: %s" % Debug.formatException(err, "html")) + def wrapper(*args, **kwargs): - gevent.spawn(func, *args, **kwargs) + gevent.spawn(asyncErrorWatcher, func, *args, **kwargs) return wrapper # Handle incoming messages