Merge pull request #5042 from matrix-org/erikj/fix_get_missing_events_error

Handle the case of `get_missing_events` failing
This commit is contained in:
Erik Johnston 2019-06-19 13:20:09 +01:00 committed by GitHub
commit 7dcf984075
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 20 additions and 9 deletions

1
changelog.d/5042.bugfix Normal file
View File

@ -0,0 +1 @@
Fix bug processing incoming events over federation if call to `/get_missing_events` fails.

View File

@ -498,6 +498,7 @@ class FederationHandler(BaseHandler):
# #
# All that said: Let's try increasing the timout to 60s and see what happens. # All that said: Let's try increasing the timout to 60s and see what happens.
try:
missing_events = yield self.federation_client.get_missing_events( missing_events = yield self.federation_client.get_missing_events(
origin, origin,
room_id, room_id,
@ -507,6 +508,15 @@ class FederationHandler(BaseHandler):
min_depth=min_depth, min_depth=min_depth,
timeout=60000, timeout=60000,
) )
except RequestSendFailed as e:
# We failed to get the missing events, but since we need to handle
# the case of `get_missing_events` not returning the necessary
# events anyway, it is safe to simply log the error and continue.
logger.warn(
"[%s %s]: Failed to get prev_events: %s",
room_id, event_id, e,
)
return
logger.info( logger.info(
"[%s %s]: Got %d prev_events: %s", "[%s %s]: Got %d prev_events: %s",