diff options
author | Richard van der Hoff <richard@matrix.org> | 2017-03-23 12:03:46 +0000 |
---|---|---|
committer | Richard van der Hoff <richard@matrix.org> | 2017-03-23 12:07:11 +0000 |
commit | b88a323ffbe165b8639a2ef5f5791ed65cde3e4b (patch) | |
tree | 67c70b8ee6650d1a5594b487c537d71a7bb4b100 /synapse/util | |
parent | Merge branch 'master' into develop (diff) | |
download | synapse-b88a323ffbe165b8639a2ef5f5791ed65cde3e4b.tar.xz |
Fix time_bound_deferred to throw the right exception
Due to a failure to instantiate DeferredTimedOutError, time_bound_deferred would throw a CancelledError when the deferred timed out, which was rather confusing.
Diffstat (limited to 'synapse/util')
-rw-r--r-- | synapse/util/__init__.py | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/synapse/util/__init__.py b/synapse/util/__init__.py index 30fc480108..98a5a26ac5 100644 --- a/synapse/util/__init__.py +++ b/synapse/util/__init__.py @@ -26,7 +26,7 @@ logger = logging.getLogger(__name__) class DeferredTimedOutError(SynapseError): def __init__(self): - super(SynapseError).__init__(504, "Timed out") + super(SynapseError, self).__init__(504, "Timed out") def unwrapFirstError(failure): @@ -93,8 +93,10 @@ class Clock(object): ret_deferred = defer.Deferred() def timed_out_fn(): + e = DeferredTimedOutError() + try: - ret_deferred.errback(DeferredTimedOutError()) + ret_deferred.errback(e) except: pass @@ -114,7 +116,7 @@ class Clock(object): ret_deferred.addBoth(cancel) - def sucess(res): + def success(res): try: ret_deferred.callback(res) except: @@ -128,7 +130,7 @@ class Clock(object): except: pass - given_deferred.addCallbacks(callback=sucess, errback=err) + given_deferred.addCallbacks(callback=success, errback=err) timer = self.call_later(time_out, timed_out_fn) |