Fix a harmless exception when the staged events queue is empty. (#10592)
parent
d2ad397d3c
commit
c12b5577f2
|
@ -0,0 +1 @@
|
|||
Fix a bug introduced in v1.37.1 where an error could occur in the asyncronous processing of PDUs when the queue was empty.
|
|
@ -972,13 +972,18 @@ class FederationServer(FederationBase):
|
|||
# the room, so instead of pulling the event out of the DB and parsing
|
||||
# the event we just pull out the next event ID and check if that matches.
|
||||
if latest_event is not None and latest_origin is not None:
|
||||
(
|
||||
next_origin,
|
||||
next_event_id,
|
||||
) = await self.store.get_next_staged_event_id_for_room(room_id)
|
||||
if next_origin != latest_origin or next_event_id != latest_event.event_id:
|
||||
result = await self.store.get_next_staged_event_id_for_room(room_id)
|
||||
if result is None:
|
||||
latest_origin = None
|
||||
latest_event = None
|
||||
else:
|
||||
next_origin, next_event_id = result
|
||||
if (
|
||||
next_origin != latest_origin
|
||||
or next_event_id != latest_event.event_id
|
||||
):
|
||||
latest_origin = None
|
||||
latest_event = None
|
||||
|
||||
if latest_origin is None or latest_event is None:
|
||||
next = await self.store.get_next_staged_event_for_room(
|
||||
|
|
Loading…
Reference in New Issue