From a583998ec42f6ba8f02bc39471e646ac746ce3c4 Mon Sep 17 00:00:00 2001 From: Thierry Parmentelat Date: Wed, 16 Apr 2014 08:24:15 +0200 Subject: [PATCH] for debugging - print stack in case of exceptions caught at toplevel --- source/BootManager.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/source/BootManager.py b/source/BootManager.py index 32d7ba8..5270c6c 100755 --- a/source/BootManager.py +++ b/source/BootManager.py @@ -6,8 +6,9 @@ # Copyright (c) 2004-2006 The Trustees of Princeton University # All rights reserved. +import sys, os +import traceback import string -import sys, os, traceback import time import gzip @@ -109,6 +110,12 @@ class log: """ self.LogEntry( str, 0, 1 ) + def print_stack (self): + """ + dump current stack in log + """ + self.write ( traceback.format_exc() ) + # bm log uploading is available back again, as of nodeconfig-5.0-2 def Upload( self, extra_file=None ): """ @@ -332,18 +339,20 @@ class BootManager: except KeyError, e: self.LOG.write( "\n\nKeyError while running: %s\n" % str(e) ) + self.LOG.print_stack () except BootManagerException, e: self.LOG.write( "\n\nException while running: %s\n" % str(e) ) + self.LOG.print_stack () except BootManagerAuthenticationException, e: self.LOG.write( "\n\nFailed to Authenticate Node: %s\n" % str(e) ) + self.LOG.print_stack () # sets /tmp/CANCEL_BOOT flag StartDebug.Run(self.VARS, self.LOG ) # Return immediately b/c any other calls to API will fail return success except: self.LOG.write( "\n\nImplementation Error\n") - traceback.print_exc(file=self.LOG.OutputFile) - traceback.print_exc() + self.LOG.print_stack () if not success: try: -- 2.43.0