diff options
author | Andrew Morgan <1342360+anoadragon453@users.noreply.github.com> | 2020-10-20 11:47:24 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-20 11:47:24 +0100 |
commit | a312e890f5b5746f991b07970dd92d680e08dd4c (patch) | |
tree | cb9cb44413f6c2bb4ba4306f2caa30ac16158156 /scripts | |
parent | Move schema file for as_device_stream (#8590) (diff) | |
download | synapse-a312e890f5b5746f991b07970dd92d680e08dd4c.tar.xz |
Cast errors generated during synapse_port_db to str (#8585)
I noticed in https://github.com/matrix-org/synapse/issues/8575 that the `end_error` variable in `synapse_port_db` is set to an `Exception`, even though later we expect it to be a `str`. This PR simply casts an exception raised to a string. I'm doing this instead of having `end_error` be of type exception as we explicitly set `end_error` to a str here: https://github.com/matrix-org/synapse/blob/d25eb8f3709965d0face01a041d5292490bf0139/scripts/synapse_port_db#L542-L547 This whole file could probably use some heavy refactoring, but until then at least this fix will prevent exception contents from being hidden from us and users.
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/synapse_port_db | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/scripts/synapse_port_db b/scripts/synapse_port_db index 2d0b59ab53..6c7664ad4a 100755 --- a/scripts/synapse_port_db +++ b/scripts/synapse_port_db @@ -22,6 +22,7 @@ import logging import sys import time import traceback +from typing import Optional import yaml @@ -152,7 +153,7 @@ IGNORED_TABLES = { # Error returned by the run function. Used at the top-level part of the script to # handle errors and return codes. -end_error = None +end_error = None # type: Optional[str] # The exec_info for the error, if any. If error is defined but not exec_info the script # will show only the error message without the stacktrace, if exec_info is defined but # not the error then the script will show nothing outside of what's printed in the run @@ -635,7 +636,7 @@ class Porter(object): self.progress.done() except Exception as e: global end_error_exec_info - end_error = e + end_error = str(e) end_error_exec_info = sys.exc_info() logger.exception("") finally: |