MatrixSynapse/synapse
Erik Johnston fef08cbee8
Fix sending out of order `POSITION` over replication (#16639)
If a worker reconnects to Redis we send out the current positions of all our streams. However, if we're also trying to send out a backlog of RDATA at the same time then we can end up sending a `POSITION` with the current token *before* we've sent all the RDATA before the current token.

This doesn't cause actual bugs as the receiving servers see the POSITION, fetch the relevant rows from the DB, and then ignore the old RDATA as they come in. However, this is inefficient so it'd be better if we didn't  send out-of-order positions
2023-11-16 13:05:09 +00:00
..
_scripts Convert simple_select_one_txn and simple_select_one to return tuples. (#16612) 2023-11-09 11:13:31 -05:00
api Asynchronous Uploads (#15503) 2023-11-15 09:19:24 -05:00
app Use full GitHub links instead of bare issue numbers. (#16637) 2023-11-15 08:02:11 -05:00
appservice Return immutable objects for cachedList decorators (#16350) 2023-09-19 15:26:44 -04:00
config Asynchronous Uploads (#15503) 2023-11-15 09:19:24 -05:00
crypto Refactor storing of server keys (#16261) 2023-09-12 11:08:04 +01:00
events Add new module API for adding custom fields to events `unsigned` section (#16549) 2023-10-27 09:04:08 +00:00
federation Use full GitHub links instead of bare issue numbers. (#16637) 2023-11-15 08:02:11 -05:00
handlers Add an Admin API to temporarily grant the ability to update an existing cross-signing key without UIA (#16634) 2023-11-15 17:28:10 +00:00
http Use full GitHub links instead of bare issue numbers. (#16637) 2023-11-15 08:02:11 -05:00
logging Do not call getfullargspec on every call. (#16589) 2023-10-31 20:16:17 +00:00
media Asynchronous Uploads (#15503) 2023-11-15 09:19:24 -05:00
metrics Support reactor timing metric on more reactors. (#16532) 2023-11-06 08:31:22 -05:00
module_api Use full GitHub links instead of bare issue numbers. (#16637) 2023-11-15 08:02:11 -05:00
push Collect information for PushRuleEvaluator in parallel. (#16590) 2023-11-06 15:41:57 -05:00
replication Fix sending out of order `POSITION` over replication (#16639) 2023-11-16 13:05:09 +00:00
res Use oEmbed for YouTube Shorts (#15025) 2023-05-03 12:54:42 -04:00
rest Add an Admin API to temporarily grant the ability to update an existing cross-signing key without UIA (#16634) 2023-11-15 17:28:10 +00:00
server_notices Refactor `get_user_by_id` (#16316) 2023-09-14 12:46:30 +01: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 Improve state types. (#16395) 2023-09-28 07:01:46 -04:00
static Update link to the clients webpage, fix #15825 (#15874) 2023-07-06 17:28:09 +02:00
storage Fix test not detecting tables with missing primary keys and missing replica identities, then add more replica identities. (#16647) 2023-11-16 12:26:27 +00:00
streams Allow multiple workers to write to receipts stream. (#16432) 2023-10-25 16:16:19 +01:00
types Allow multiple workers to write to receipts stream. (#16432) 2023-10-25 16:16:19 +01:00
util Use full GitHub links instead of bare issue numbers. (#16637) 2023-11-15 08:02:11 -05:00
__init__.py Gracefully handle failing to thumbnail images (#16211) 2023-08-30 15:18:34 +01:00
_pydantic_compat.py Add support for pydantic v2 via pydantic.v1 compat module (#16332) 2023-09-25 15:19:08 +00:00
event_auth.py Bump ruff from 0.0.277 to 0.0.286 (#16198) 2023-08-29 09:41:43 -04:00
notifier.py Allow multiple workers to write to receipts stream. (#16432) 2023-10-25 16:16:19 +01: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 new module API for adding custom fields to events `unsigned` section (#16549) 2023-10-27 09:04:08 +00:00
visibility.py Use StrCollection in additional places. (#16301) 2023-09-13 07:57:19 -04:00