synapse-old/synapse/storage/databases/main
Erik Johnston ae7858f184
Fix race when persisting an event and deleting a room (#12594)
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`....
2022-05-03 11:47:21 +01:00
..
__init__.py Add some type hints to datastore (#12485) 2022-04-27 13:05:00 +01:00
account_data.py Use the ignored_users table to test event visibility & sync. (#12225) 2022-03-15 14:06:05 -04:00
appservice.py Add some type hints to datastore (#12485) 2022-04-27 13:05:00 +01:00
cache.py Add cache for `get_membership_from_event_ids` (#12272) 2022-03-25 14:58:56 +00:00
censor_events.py Type hint the constructors of the data store classes (#11555) 2021-12-13 17:05:00 +00:00
client_ips.py Optimise `_update_client_ips_batch_txn` to batch together database operations. (#12252) 2022-04-08 15:29:13 +01:00
deviceinbox.py Add some type hints to datastore (#12485) 2022-04-27 13:05:00 +01:00
devices.py Add some type hints to datastore (#12485) 2022-04-27 13:05:00 +01:00
directory.py Replace uses of simple_insert_many with simple_insert_many_values. (#11742) 2022-01-13 19:44:18 -05:00
e2e_room_keys.py Replace uses of simple_insert_many with simple_insert_many_values. (#11742) 2022-01-13 19:44:18 -05:00
end_to_end_keys.py Add support for MSC3202: sending one-time key counts and fallback key usage states to Application Services. (#11617) 2022-02-24 17:55:45 +00:00
event_federation.py Optimise backfill calculation (#12522) 2022-04-26 10:27:11 +01:00
event_push_actions.py Replace uses of simple_insert_many with simple_insert_many_values. (#11742) 2022-01-13 19:44:18 -05:00
events.py Fix race when persisting an event and deleting a room (#12594) 2022-05-03 11:47:21 +01:00
events_bg_updates.py Replace uses of simple_insert_many with simple_insert_many_values. (#11742) 2022-01-13 19:44:18 -05:00
events_forward_extremities.py Fix returned count of delete extremities admin API (#12496) 2022-04-19 16:49:45 +01:00
events_worker.py Handle cancellation in `EventsWorkerStore._get_events_from_cache_or_db` (#12529) 2022-04-25 19:39:17 +01:00
filtering.py Improve type hints in storage classes. (#11652) 2021-12-29 13:04:28 +00:00
group_server.py Add some type hints to datastore (#12485) 2022-04-27 13:05:00 +01:00
keys.py Add some type hints to datastore (#12485) 2022-04-27 13:05:00 +01:00
lock.py Type hint the constructors of the data store classes (#11555) 2021-12-13 17:05:00 +00:00
media_repository.py Add some type hints to datastore (#12485) 2022-04-27 13:05:00 +01:00
metrics.py Remove redundant `COALESCE()`s around `COUNT()`s in database queries (#11570) 2021-12-14 12:34:30 +00:00
monthly_active_users.py Remove unused `# type: ignore`s (#12531) 2022-04-27 14:03:44 +01:00
openid.py Add type hints to some storage classes (#11307) 2021-11-11 08:47:31 -05:00
presence.py Add some type hints to datastore (#12485) 2022-04-27 13:05:00 +01:00
profile.py Database storage profile passes mypy (#11342) 2021-11-15 12:59:33 +00:00
purge_events.py Fix race when persisting an event and deleting a room (#12594) 2022-05-03 11:47:21 +01:00
push_rule.py Add a module API to allow modules to edit push rule actions (#12406) 2022-04-27 13:55:33 +00:00
pusher.py Add some type hints to datastore (#12485) 2022-04-27 13:05:00 +01:00
receipts.py Improve the docstrings for the receipts store. (#12581) 2022-04-28 17:58:58 +00:00
registration.py Add some type hints to datastore (#12423) 2022-04-12 11:54:00 +01:00
rejections.py Remove redundant "coding: utf-8" lines (#9786) 2021-04-14 15:34:27 +01:00
relations.py Remove references to unstable identifiers from MSC3440. (#12382) 2022-04-12 08:42:03 -04:00
room.py Resync state after partial-state join (#12394) 2022-04-12 13:23:43 +00:00
room_batch.py Correct type hint for room_batch.py (#11310) 2021-11-11 16:49:28 +00:00
roommember.py Refactor and convert `Linearizer` to async (#12357) 2022-04-05 15:43:52 +01:00
search.py Add some type hints to datastore. (#12255) 2022-03-28 14:11:14 -04:00
session.py Run `pyupgrade --py37-plus --keep-percent-format` on Synapse (#11685) 2022-01-05 09:53:05 -08:00
signatures.py Add some type hints to datastore (#12423) 2022-04-12 11:54:00 +01:00
state.py Consistently use collections.abc.Mapping to check frozendict. (#12564) 2022-04-27 09:00:07 -04:00
state_deltas.py Improve log messages for stream ids (#11536) 2021-12-08 14:15:14 +00:00
stats.py Add some type hints to datastore. (#12255) 2022-03-28 14:11:14 -04:00
stream.py Fix missing sync events during historical batch imports (#12319) 2022-04-13 11:38:35 +01:00
tags.py Add some type hints to datastore (#12423) 2022-04-12 11:54:00 +01:00
transactions.py Add admin API to get a list of federated rooms (#11658) 2022-01-25 16:11:40 +00:00
ui_auth.py Add some type hints to datastore (#12485) 2022-04-27 13:05:00 +01:00
user_directory.py Add some type hints to datastore. (#12255) 2022-03-28 14:11:14 -04:00
user_erasure_store.py Annotations for user_erasure_store (#11313) 2021-11-11 19:22:19 +00:00