From a54845c44ae1071b15ccf926b0a30fb6beddba88 Mon Sep 17 00:00:00 2001 From: PhilipTrauner Date: Sat, 20 Feb 2016 08:20:26 +0100 Subject: [PATCH] Full traceback in case of crash --- Server/AsyncServer.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/Server/AsyncServer.py b/Server/AsyncServer.py index 84975fd..771f18d 100644 --- a/Server/AsyncServer.py +++ b/Server/AsyncServer.py @@ -7,6 +7,9 @@ import traceback import socket import _thread +def capture_trace(): + exc_type, exc_value, exc_traceback = sys.exc_info() + traceback.print_exception(exc_type, exc_value, exc_traceback) class Server: def __init__(self, host_port_pair, debug=False): @@ -48,9 +51,11 @@ class Server: _thread.exit() except Exception: Logging.error("An unhandled exception forced the controller for '%s:%d' to terminate." % (sock.address, sock.port)) - exc_type, exc_value, exc_traceback = sys.exc_info() - traceback.print_exception(exc_type, exc_value, exc_traceback) - handler.finish() + capture_trace() + try: + handler.finish() + except Exception: + capture_trace() if sock in self.socks: del self.socks[self.socks.index(sock)] sock.close()