Cast a coroutine into a Deferred in the federation base (#6996)

Properly convert a coroutine into a Deferred in federation_base to fix an error when joining a room.
This commit is contained in:
Patrick Cloke 2020-02-26 11:32:13 -05:00 committed by GitHub
parent 9c1b83b007
commit 380122866f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 6 deletions

1
changelog.d/6996.bugfix Normal file
View file

@ -0,0 +1 @@
Fix bug which caused an error when joining a room, with `'coroutine' object has no attribute 'event_id'`.

View file

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