Skip to content
Snippets Groups Projects
Unverified Commit b7367c33 authored by Richard van der Hoff's avatar Richard van der Hoff Committed by GitHub
Browse files

Fix exceptions from background database update for event labels. (#6407)

Add some exception handling here so that events whose json cannot be parsed are
ignored rather than getting us stuck in a loop.

Fixes #6404.
parent 41e45666
No related branches found
No related tags found
No related merge requests found
Fix a bug which could cause the background database update hander for event labels to get stuck in a loop raising exceptions.
...@@ -530,24 +530,31 @@ class EventsBackgroundUpdatesStore(BackgroundUpdateStore): ...@@ -530,24 +530,31 @@ class EventsBackgroundUpdatesStore(BackgroundUpdateStore):
nbrows = 0 nbrows = 0
last_row_event_id = "" last_row_event_id = ""
for (event_id, event_json_raw) in results: for (event_id, event_json_raw) in results:
event_json = json.loads(event_json_raw) try:
event_json = json.loads(event_json_raw)
self._simple_insert_many_txn(
txn=txn, self._simple_insert_many_txn(
table="event_labels", txn=txn,
values=[ table="event_labels",
{ values=[
"event_id": event_id, {
"label": label, "event_id": event_id,
"room_id": event_json["room_id"], "label": label,
"topological_ordering": event_json["depth"], "room_id": event_json["room_id"],
} "topological_ordering": event_json["depth"],
for label in event_json["content"].get( }
EventContentFields.LABELS, [] for label in event_json["content"].get(
) EventContentFields.LABELS, []
if isinstance(label, str) )
], if isinstance(label, str)
) ],
)
except Exception as e:
logger.warning(
"Unable to load event %s (no labels will be imported): %s",
event_id,
e,
)
nbrows += 1 nbrows += 1
last_row_event_id = event_id last_row_event_id = event_id
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment