summary refs log tree commit diff
diff options
context:
space:
mode:
authorErik Johnston <erikj@jki.re>2018-07-03 10:18:39 +0100
committerGitHub <noreply@github.com>2018-07-03 10:18:39 +0100
commit957944eee4e89c19e7385635b71225da8c69fd0b (patch)
treeba88d0925aeb3bbcd50ed8da96211ee76513e502
parentMerge branch 'develop' of github.com:matrix-org/synapse into matrix-org-hotfixes (diff)
parentFix PEP8 (diff)
downloadsynapse-957944eee4e89c19e7385635b71225da8c69fd0b.tar.xz
Merge pull request #3476 from matrix-org/erikj/timeout_memberships
Timeout membership requests after 90s
-rw-r--r--synapse/handlers/room_member.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/synapse/handlers/room_member.py b/synapse/handlers/room_member.py

index edc33e466a..7d509f9e08 100644 --- a/synapse/handlers/room_member.py +++ b/synapse/handlers/room_member.py
@@ -246,8 +246,22 @@ class RoomMemberHandler(object): if requester.app_service: as_id = requester.app_service.id + then = self.clock.time_msec() + with (yield self.member_limiter.queue(as_id)): + diff = self.clock.time_msec() - then + + if diff > 90 * 1000: + # haproxy would have timed the request out anyway... + raise SynapseError(504, "took to long to process") + with (yield self.member_linearizer.queue(key)): + diff = self.clock.time_msec() - then + + if diff > 90 * 1000: + # haproxy would have timed the request out anyway... + raise SynapseError(504, "took to long to process") + result = yield self._update_membership( requester, target,