mirror of
https://github.com/element-hq/synapse
synced 2024-09-06 01:50:08 +00:00
This works by taking a row level lock on the `rooms` table at the start of both transactions, ensuring that they don't run at the same time. In the event persistence transaction we also check that there is an entry still in the `rooms` table. I can't figure out how to do this in SQLite. I was just going to lock the table, but it seems that we don't support that in SQLite either, so I'm *really* confused as to how we maintain integrity in SQLite when using `lock_table`....
1 line
103 B
Text
1 line
103 B
Text
Fix race when persisting an event and deleting a room that could lead to outbound federation breaking.
|