Additional review comments: non-test files

This commit is contained in:
Kegan Dougal
2026-03-09 15:50:10 +00:00
parent 2f82a5b399
commit 606ce6b57e
4 changed files with 13 additions and 8 deletions
+5 -6
View File
@@ -215,7 +215,7 @@ async def check_state_independent_auth_rules(
# we should have all the prev state events by now, so if we do not, that suggests
# a synapse programming error
known_prev_state_event_ids = set(prev_state_events)
raise RuntimeError(
raise AssertionError(
f"Event {event.event_id} has unknown prev_state_events "
+ f"{len(prev_state_events)} != {len(prev_state_events_ids)} "
+ f"{prev_state_events_ids - known_prev_state_event_ids} missing "
@@ -538,11 +538,10 @@ def _check_create(event: "EventBase") -> None:
raise AuthError(403, "Create event has prev events")
# State DAGs 1.2 If it has any prev_state_events, reject.
if (
event.room_version.msc4242_state_dags
and cast(FrozenEventVMSC4242, event).prev_state_events
):
raise AuthError(403, "Create event has prev state events")
if event.room_version.msc4242_state_dags:
assert isinstance(event, FrozenEventVMSC4242)
if len(event.prev_state_events) > 0:
raise AuthError(403, "Create event has prev state events")
if event.room_version.msc4291_room_ids_as_hashes:
# 1.2 If the create event has a room_id, reject
+3 -1
View File
@@ -2996,12 +2996,14 @@ class PersistEventsStore:
},
)
return
assert len(event.prev_state_events) > 0
self.db_pool.simple_upsert_many_txn(
txn,
table="msc4242_state_dag_edges",
key_names=["room_id", "event_id", "prev_state_event_id"],
key_values=[
(event.room_id, event.event_id, prev_state_event) for prev_state_event in event.prev_state_events
(event.room_id, event.event_id, prev_state_event)
for prev_state_event in event.prev_state_events
],
value_names=(),
value_values=(),
@@ -71,6 +71,10 @@ purge_room_tables_with_room_id_column = (
# so must be deleted first.
"sliding_sync_joined_rooms",
"sliding_sync_membership_snapshots",
# Note: msc4242_state_dag_forward_extremities/edges have a foreign key to the `events` table
# so must be deleted first.
"msc4242_state_dag_forward_extremities",
"msc4242_state_dag_edges",
"events",
"federation_inbound_events_staging",
"receipts_graph",
@@ -17,7 +17,7 @@ CREATE TABLE IF NOT EXISTS msc4242_state_dag_forward_extremities(
event_id TEXT NOT NULL REFERENCES events(event_id) ON DELETE CASCADE,
-- it doesn't make sense to reference the same event multiple times, and this uniqueness
-- index is also used to delete events once they are no longer forward extremities.
UNIQUE (event_id, room_id)
UNIQUE (event_id)
);
-- When creating events, we want to select all forward extremities for a room which this index helps with.
CREATE INDEX msc4242_state_dag_room ON msc4242_state_dag_forward_extremities(room_id);