summary refs log tree commit diff
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2018-07-02 13:56:08 +0100
committerErik Johnston <erik@matrix.org>2018-07-02 13:56:08 +0100
commitca21957b8a4942e829050834297afb290338c120 (patch)
treef00e517d4739ab4b039b7c5c3fcf1e4f68a90ea5
parentMerge branch 'develop' of github.com:matrix-org/synapse into matrix-org-hotfixes (diff)
downloadsynapse-ca21957b8a4942e829050834297afb290338c120.tar.xz
Timeout membership requests after 90s
This is a hacky fix to try and stop in flight requests from building up
-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..e0950288df 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,