From e8ed0029ef6388f2c9af9467f3958bdd145b2f9b Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 2 Apr 2017 00:31:05 +0100 Subject: [PATCH] crashing and msgs --- client | 19 ++++++++++++------- hippotat/__init__.py | 5 +++-- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/client b/client index 48c4f3f..e6ea8ed 100755 --- a/client +++ b/client @@ -145,13 +145,18 @@ def req_ok(req, resp): def req_err(req, err): # called when the Deferred fails, or (if it completes), # later, by ResponsConsumer or ErrorResponsConsumer - log_debug(DBG.HTTP_CTRL, 'req_err ' + str(err), idof=req) - if isinstance(err, twisted.python.failure.Failure): - err = err.getTraceback() - print(err, file=sys.stderr) - outstanding[req] = 'ERR' - log_outstanding() - reactor.callLater(c.http_retry, (lambda: req_fin(req))) + try: + log_debug(DBG.HTTP_CTRL, 'req_err ' + str(err), idof=req) + if isinstance(err, twisted.python.failure.Failure): + err = err.getTraceback() + print('[%#x] %s' % (id(req), err), file=sys.stderr) + if not isinstance(outstanding[req], int): + raise RuntimeError('[%#x] previously %s' % (id(req), outstanding[req])) + outstanding[req] = err + log_outstanding() + reactor.callLater(c.http_retry, (lambda: req_fin(req))) + except Exception as e: + crash(traceback.format_exc() + '\n----- handling -----\n' + err) def req_fin(req): del outstanding[req] diff --git a/hippotat/__init__.py b/hippotat/__init__.py index 43f4a49..3e8649a 100644 --- a/hippotat/__init__.py +++ b/hippotat/__init__.py @@ -49,7 +49,7 @@ log = twisted.logger.Logger() def log_debug(dflag, msg, idof=None, d=None): #print('---------------->',repr((dflag, msg, idof, d)), file=sys.stderr) if idof is not None: - msg = '[%d] %s' % (id(idof), msg) + msg = '[%#x] %s' % (id(idof), msg) if d is not None: d = d[0:64] d = _hex_codec(d)[0].decode('ascii') @@ -286,7 +286,8 @@ _crashing = False def crash(err): global _crashing _crashing = True - print('CRASH ', err, file=sys.stderr) + print('========== CRASH ==========', err, + '===========================', file=sys.stderr) try: reactor.stop() except twisted.internet.error.ReactorNotRunning: pass -- 2.30.2