Skip to content

Commit

Permalink
Cast errors generated during synapse_port_db to str (matrix-org#8585)
Browse files Browse the repository at this point in the history
I noticed in matrix-org#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.
  • Loading branch information
anoadragon453 authored Oct 20, 2020
1 parent 626b8f0 commit a312e89
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 2 deletions.
1 change: 1 addition & 0 deletions changelog.d/8585.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix a bug that prevented errors encountered during execution of the `synapse_port_db` from being correctly printed.
5 changes: 3 additions & 2 deletions scripts/synapse_port_db
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import logging
import sys
import time
import traceback
from typing import Optional

import yaml

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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:
Expand Down

0 comments on commit a312e89

Please sign in to comment.