From: Zac Medico Date: Tue, 10 Mar 2009 02:11:51 +0000 (-0000) Subject: Bug #261852 - If an unexpected exception is raise from emerge_main() then X-Git-Tag: v2.2_rc24~10 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=ddec8714cff06ebe933ec5ff8b9469a736d6c306;p=portage.git Bug #261852 - If an unexpected exception is raise from emerge_main() then show the traceback after the mod_echo output to that the traceback isn't obscured by mod_echo flooding. svn path=/main/trunk/; revision=12814 --- diff --git a/bin/emerge b/bin/emerge index b07ad9e0e..b95a2f5b2 100755 --- a/bin/emerge +++ b/bin/emerge @@ -44,4 +44,20 @@ if __name__ == "__main__": except ParseError, e: sys.stderr.write("%s\n" % str(e)) sys.exit(1) + except SystemExit: + raise + except Exception: + # If an unexpected exception occurs then we don't want the mod_echo + # output to obscure the traceback, so dump the mod_echo output before + # showing the traceback. + import traceback + tb_str = traceback.format_exc() + try: + from portage.elog import mod_echo + except ImportError: + pass + else: + mod_echo.finalize() + sys.stderr.write(tb_str) + sys.exit(1) sys.exit(retval)