mirror of
https://github.com/element-hq/synapse.git
synced 2026-05-23 00:15:13 +00:00
Correctly handle failing to parse event dict from DB
Now that we do a bit more validadtion of events, it's possible that an event persisted in the database may now not pass validation. This shouldn't happen, but let's handle it correctly by logging and returning that we couldn't find the event. This is the same as what we do if we can't parse the JSON.
This commit is contained in:
@@ -1516,12 +1516,17 @@ class EventsWorkerStore(SQLBaseStore):
|
||||
)
|
||||
continue
|
||||
|
||||
original_ev = make_event_from_dict(
|
||||
event_dict=d,
|
||||
room_version=room_version,
|
||||
internal_metadata_dict=internal_metadata,
|
||||
rejected_reason=rejected_reason,
|
||||
)
|
||||
try:
|
||||
original_ev = make_event_from_dict(
|
||||
event_dict=d,
|
||||
room_version=room_version,
|
||||
internal_metadata_dict=internal_metadata,
|
||||
rejected_reason=rejected_reason,
|
||||
)
|
||||
except ValueError:
|
||||
logger.error("Unable to parse event from database: %s", event_id)
|
||||
continue
|
||||
|
||||
original_ev.internal_metadata.stream_ordering = row.stream_ordering
|
||||
original_ev.internal_metadata.instance_name = row.instance_name
|
||||
original_ev.internal_metadata.outlier = row.outlier
|
||||
|
||||
Reference in New Issue
Block a user