`traceback.format_exception(...)` usage that is compatible with Python 3.7 and 3.11 (#15599)

* Usage that is compatible with Python 3.8 and 3.11

> Since Python 3.10, instead of passing value and tb, an exception object can
  be passed as the first argument. If value and tb are provided, the first
  argument is ignored in order to provide backwards compatibility.
>
> -- https://docs.python.org/3/library/traceback.html

* Add changelog
1.103.0-whithout-watcha
Eric Eastwood 2 years ago committed by GitHub
parent 0ccfb9318c
commit b6a7d49b6f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 1
      changelog.d/15599.bugfix
  2. 2
      synapse/app/_base.py

@ -0,0 +1 @@
Print full error and stack-trace of any exception that occurs during startup/initialization.

@ -214,7 +214,7 @@ def handle_startup_exception(e: Exception) -> NoReturn:
# the reactor are written to the logs, followed by a summary to stderr.
logger.exception("Exception during startup")
error_string = "".join(traceback.format_exception(e))
error_string = "".join(traceback.format_exception(type(e), e, e.__traceback__))
indented_error_string = indent(error_string, " ")
quit_with_error(

Loading…
Cancel
Save