summary refs log tree commit diff
diff options
context:
space:
mode:
authorPatrick Cloke <patrickc@matrix.org>2020-02-27 13:47:44 -0500
committerPatrick Cloke <patrickc@matrix.org>2020-02-27 13:47:44 -0500
commitab0073a6c0f454d0fa43d7a57a7442442eeb46fe (patch)
tree21ea036640633bda2a0f7ecb42148c2f446c8e2a
parentDon't refuse to start worker if media listener configured. (#7002) (diff)
parentCast a coroutine into a Deferred in the federation base (#6996) (diff)
downloadsynapse-ab0073a6c0f454d0fa43d7a57a7442442eeb46fe.tar.xz
Merge remote-tracking branch 'origin/release-v1.11.1' into develop
-rw-r--r--changelog.d/6996.bugfix1
-rw-r--r--synapse/federation/federation_base.py14
2 files changed, 9 insertions, 6 deletions
diff --git a/changelog.d/6996.bugfix b/changelog.d/6996.bugfix
new file mode 100644
index 0000000000..765d376c7c
--- /dev/null
+++ b/changelog.d/6996.bugfix
@@ -0,0 +1 @@
+Fix bug which caused an error when joining a room, with `'coroutine' object has no attribute 'event_id'`.
diff --git a/synapse/federation/federation_base.py b/synapse/federation/federation_base.py
index eea64c1c9f..9fff65716a 100644
--- a/synapse/federation/federation_base.py
+++ b/synapse/federation/federation_base.py
@@ -96,12 +96,14 @@ class FederationBase(object):
 
             if not res and pdu.origin != origin:
                 try:
-                    res = yield self.get_pdu(
-                        destinations=[pdu.origin],
-                        event_id=pdu.event_id,
-                        room_version=room_version,
-                        outlier=outlier,
-                        timeout=10000,
+                    res = yield defer.ensureDeferred(
+                        self.get_pdu(
+                            destinations=[pdu.origin],
+                            event_id=pdu.event_id,
+                            room_version=room_version,
+                            outlier=outlier,
+                            timeout=10000,
+                        )
                     )
                 except SynapseError:
                     pass