summary refs log tree commit diff
path: root/synapse/crypto/keyring.py
diff options
context:
space:
mode:
authorRichard van der Hoff <github@rvanderhoff.org.uk>2017-09-19 23:25:44 +0100
committerGitHub <noreply@github.com>2017-09-19 23:25:44 +0100
commit9864efa5321ad5afa522d9ecb3eb48e1f50fb852 (patch)
tree56995203bd7f98098243ab4a54eaccf6f9644292 /synapse/crypto/keyring.py
parentAdd a config option to block all room invites (#2457) (diff)
downloadsynapse-9864efa5321ad5afa522d9ecb3eb48e1f50fb852.tar.xz
Fix concurrent server_key requests (#2458)
Fix a bug where we could end up firing off multiple requests for server_keys
for the same server at the same time.
Diffstat (limited to 'synapse/crypto/keyring.py')
-rw-r--r--synapse/crypto/keyring.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/synapse/crypto/keyring.py b/synapse/crypto/keyring.py
index 51851d04e5..ebf4e2e7a6 100644
--- a/synapse/crypto/keyring.py
+++ b/synapse/crypto/keyring.py
@@ -201,7 +201,9 @@ class Keyring(object):
                 server_name = verify_request.server_name
                 request_id = id(verify_request)
                 server_to_request_ids.setdefault(server_name, set()).add(request_id)
-                deferred.addBoth(remove_deferreds, server_name, verify_request)
+                verify_request.deferred.addBoth(
+                    remove_deferreds, server_name, verify_request,
+                )
 
         # Pass those keys to handle_key_deferred so that the json object
         # signatures can be verified