From 1a850b025623ef4f90d87e2815395ec1f12ca555 Mon Sep 17 00:00:00 2001 From: Job Evers-Meltzer Date: Tue, 17 Jan 2017 20:01:04 -0600 Subject: [PATCH] log exception on callback failure --- lbrynet/core/log_support.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lbrynet/core/log_support.py b/lbrynet/core/log_support.py index 59b06b4b0..e4f7d64df 100644 --- a/lbrynet/core/log_support.py +++ b/lbrynet/core/log_support.py @@ -399,7 +399,16 @@ class Logger(logging.Logger): self.name, level, fn, lno, msg, msg_args, exc_info, func, msg_kwargs) self.handle(record) if callback: - return callback(err, *args, **kwargs) + try: + return callback(err, *args, **kwargs) + except Exception: + # log.fail is almost always called within an + # errback. If callback fails and we didn't catch + # the exception we would need to attach a second + # errback to deal with that, which we will almost + # never do and then we end up with an unhandled + # error that will get swallowed by twisted + self.exception('Failed to run callback') return _fail def trace(self, msg, *args, **kwargs):