Merge pull request #3476 from matrix-org/erikj/timeout_memberships

Timeout membership requests after 90s
This commit is contained in:
Erik Johnston 2018-07-03 10:18:39 +01:00 committed by GitHub
commit 957944eee4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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,