better errors through broker

This commit is contained in:
ed 2024-07-21 20:36:50 +00:00
parent f955d2bd58
commit e565ad5f55
3 changed files with 6 additions and 9 deletions

View file

@ -28,7 +28,7 @@ class ExceptionalQueue(Queue, object):
if rv[1] == "pebkac": if rv[1] == "pebkac":
raise Pebkac(*rv[2:]) raise Pebkac(*rv[2:])
else: else:
raise Exception(rv[2]) raise rv[2]
return rv return rv
@ -65,8 +65,8 @@ def try_exec(want_retval: Union[bool, int], func: Any, *args: list[Any]) -> Any:
return ["exception", "pebkac", ex.code, str(ex)] return ["exception", "pebkac", ex.code, str(ex)]
except: except Exception as ex:
if not want_retval: if not want_retval:
raise raise
return ["exception", "stack", traceback.format_exc()] return ["exception", "stack", ex]

View file

@ -646,11 +646,8 @@ class HttpCli(object):
if not self._check_nonfatal(pex, post): if not self._check_nonfatal(pex, post):
self.keepalive = False self.keepalive = False
if pex is ex: em = str(ex)
em = msg = str(ex) msg = em if pex is ex else min_ex()
else:
em = repr(ex)
msg = min_ex()
if pex.code != 404 or self.do_log: if pex.code != 404 or self.do_log:
self.log( self.log(

View file

@ -1377,7 +1377,7 @@ def vol_san(vols: list["VFS"], txt: bytes) -> bytes:
def min_ex(max_lines: int = 8, reverse: bool = False) -> str: def min_ex(max_lines: int = 8, reverse: bool = False) -> str:
et, ev, tb = sys.exc_info() et, ev, tb = sys.exc_info()
stb = traceback.extract_tb(tb) if tb else traceback.extract_stack()[:-1] stb = traceback.extract_tb(tb) if tb else traceback.extract_stack()[:-1]
fmt = "%s @ %d <%s>: %s" fmt = "%s:%d <%s>: %s"
ex = [fmt % (fp.split(os.sep)[-1], ln, fun, txt) for fp, ln, fun, txt in stb] ex = [fmt % (fp.split(os.sep)[-1], ln, fun, txt) for fp, ln, fun, txt in stb]
if et or ev or tb: if et or ev or tb:
ex.append("[%s] %s" % (et.__name__ if et else "(anonymous)", ev)) ex.append("[%s] %s" % (et.__name__ if et else "(anonymous)", ev))