synapse-product/synapse
Nick Mills-Barrett db1cfe9c80
Update all stream IDs after processing replication rows (#14723)
This creates a new store method, `process_replication_position` that
is called after `process_replication_rows`. By moving stream ID advances
here this guarantees any relevant cache invalidations will have been
applied before the stream is advanced.

This avoids race conditions where Python switches between threads mid
way through processing the `process_replication_rows` method where stream
IDs may be advanced before caches are invalidated due to class resolution
ordering.

See this comment/issue for further discussion:
	https://github.com/matrix-org/synapse/issues/14158#issuecomment-1344048703
2023-01-04 11:49:26 +00:00
..
_scripts Check sqlite database file exists before porting. (#14692) 2022-12-22 13:26:37 -05:00
api Improve validation of field size limits in events. (#14664) 2022-12-13 13:19:19 +00:00
app Use ClientRestResource on both the main process and workers. (#14528) 2022-12-02 13:10:05 -05:00
appservice Fix missing cache invalidation in application service code (#14670) 2022-12-12 18:13:43 +00:00
config Add experimental support for MSC3391: deleting account data (#14714) 2023-01-01 03:40:46 +00:00
crypto Stop using deprecated keyIds param on /key/v2/server (#14525) 2022-11-30 11:59:57 +00:00
events Allow selecting "prejoin" events by state keys (#14642) 2022-12-13 00:54:46 +00:00
federation Failover on proper error responses. (#14620) 2022-12-06 07:23:03 -05:00
handlers Add experimental support for MSC3391: deleting account data (#14714) 2023-01-01 03:40:46 +00:00
http Respond with proper error responses on unknown paths. (#14621) 2022-12-08 11:37:05 -05:00
logging Improve logging and opentracing for to-device message handling (#14598) 2022-12-06 09:52:55 +00:00
metrics Fix logging context warnings due to common usage metrics setup (#14574) 2022-11-28 15:25:18 +00:00
module_api Add a cached helper to the module API (#14663) 2022-12-28 13:48:21 +00:00
push Improve validation of field size limits in events. (#14664) 2022-12-13 13:19:19 +00:00
replication Update all stream IDs after processing replication rows (#14723) 2023-01-04 11:49:26 +00:00
res Fix #11308 : Remove dependency on jquery on reCAPTCHA page (#14672) 2022-12-14 12:02:28 +00:00
rest Add experimental support for MSC3391: deleting account data (#14714) 2023-01-01 03:40:46 +00:00
server_notices Remove redundant types from comments. (#14412) 2022-11-16 15:25:24 +00:00
spam_checker_api Fix import in module_api module and docs on the new check_event_for_spam signature (#12918) 2022-05-31 12:04:53 +02:00
state Allow compute_state_after_events to use partial state (#14676) 2022-12-14 14:52:35 +00:00
static Add viewport directive to HTML templates to optimise for mobile (#13493) 2022-08-11 14:04:20 +01:00
storage Update all stream IDs after processing replication rows (#14723) 2023-01-04 11:49:26 +00:00
streams Implement message forward pagination from start when no from is given, fixes #12383 (#14149) 2022-11-24 09:10:51 +00:00
types Allow selecting "prejoin" events by state keys (#14642) 2022-12-13 00:54:46 +00:00
util Add missing type hints to tests.config. (#14681) 2022-12-16 08:53:28 -05:00
__init__.py Parse SYNAPSE_ASYNC_IO_REACTOR env variable & log the reactor on startup (#14092) 2022-10-07 15:19:59 +01:00
event_auth.py Improve validation of field size limits in events. (#14664) 2022-12-13 13:19:19 +00:00
notifier.py Batch up notifications after event persistence (#14033) 2022-10-05 10:12:48 -07:00
py.typed Mark Module API error imports as re-exported and mark Synapse as containing type annotations (#11054) 2021-10-13 08:42:41 +01:00
server.py Add a type hint for get_device_handler() and fix incorrect types. (#14055) 2022-11-22 14:08:04 -05:00
visibility.py Move StateFilter to synapse.types (#14668) 2022-12-12 16:19:30 +00:00