synapse/changelog.d
Erik Johnston f112cfe5bb
Fix MultiWriteIdGenerator's handling of restarts. (#8374)
On startup `MultiWriteIdGenerator` fetches the maximum stream ID for
each instance from the table and uses that as its initial "current
position" for each writer. This is problematic as a) it involves either
a scan of events table or an index (neither of which is ideal), and b)
if rows are being persisted out of order elsewhere while the process
restarts then using the maximum stream ID is not correct. This could
theoretically lead to race conditions where e.g. events that are
persisted out of order are not sent down sync streams.

We fix this by creating a new table that tracks the current positions of
each writer to the stream, and update it each time we finish persisting
a new entry. This is a relatively small overhead when persisting events.
However for the cache invalidation stream this is a much bigger relative
overhead, so instead we note that for invalidation we don't actually
care about reliability over restarts (as there's no caches to
invalidate) and simply don't bother reading and writing to the new table
in that particular case.
2020-09-24 16:53:51 +01:00
..
.gitignore Correct attrs package name in requirements (#3492) 2018-07-07 10:46:59 +10:00
7124.bugfix Include method in thumbnail media name (#7124) 2020-09-08 17:19:50 +01:00
7796.bugfix Don't remember enabled of deleted push rules and properly return 404 for missing push rules in .../actions and .../enabled (#7796) 2020-09-09 11:39:39 +01:00
8004.feature Show a confirmation page during user password reset (#8004) 2020-09-10 11:45:12 +01:00
8208.misc Use TLSv1.2 for fake servers in tests (#8208) 2020-09-10 19:49:08 +01:00
8216.misc Remove some unused distributor signals (#8216) 2020-09-09 12:22:00 -04:00
8217.feature Admin API for reported events (#8217) 2020-09-22 18:15:04 +01:00
8227.doc Add /_synapse/client to the reverse proxy docs (#8227) 2020-09-10 13:26:34 +01:00
8230.bugfix Catch-up after Federation Outage (bonus): Catch-up on Synapse Startup (#8322) 2020-09-18 14:59:13 +01:00
8236.bugfix Do not error when thumbnailing invalid files (#8236) 2020-09-09 12:59:41 -04:00
8243.misc Rename 'populate_stats_process_rooms_2' background job back to 'populate_stats_process_rooms' again (#8243) 2020-09-08 11:05:59 +01:00
8247.bugfix Catch-up after Federation Outage (bonus): Catch-up on Synapse Startup (#8322) 2020-09-18 14:59:13 +01:00
8248.feature Improve SAML error messages (#8248) 2020-09-14 09:05:36 -04:00
8250.misc Clean up types for PaginationConfig (#8250) 2020-09-08 15:00:17 +01:00
8256.misc In light of #8255, use BIGINTs for destination_rooms (#8256) 2020-09-04 15:07:29 +01:00
8257.misc Fix MultiWriterIdGenerator.current_position. (#8257) 2020-09-08 14:26:54 +01:00
8258.bugfix Catch-up after Federation Outage (bonus): Catch-up on Synapse Startup (#8322) 2020-09-18 14:59:13 +01:00
8259.misc Directly import json from the standard library. (#8259) 2020-09-08 07:33:48 -04:00
8260.misc Add types to async_helpers (#8260) 2020-09-08 16:50:51 -04:00
8261.misc Allow for make_awaitable's return value to be re-used. (#8261) 2020-09-08 07:26:55 -04:00
8262.bugfix Bump canonicaljson to version 1.4.0 (#8262) 2020-09-07 12:21:38 +01:00
8265.bugfix Run database updates in a transaction (#8265) 2020-09-07 11:41:50 +01:00
8268.bugfix Fix stack overflow when logging system encounters an error (#8268) 2020-09-07 16:54:30 +01:00
8272.bugfix Catch-up after Federation Outage (split, 4): catch-up loop (#8272) 2020-09-15 09:07:19 +01:00
8275.feature Add a config option for validating 'next_link' parameters against a domain whitelist (#8275) 2020-09-08 16:03:09 +01:00
8278.bugfix Use the right constructor for log records (#8278) 2020-09-08 14:52:51 +01:00
8279.misc Add types to StreamToken and RoomStreamToken (#8279) 2020-09-08 16:48:15 +01:00
8281.misc Make StreamToken.room_key be a RoomStreamToken instance. (#8281) 2020-09-11 12:22:55 +01:00
8282.misc Fix mypy error on develop (#8282) 2020-09-08 17:43:31 +01:00
8287.bugfix Fixup pusher pool notifications (#8287) 2020-09-09 16:56:08 +01:00
8288.misc Clean up Notifier.on_new_room_event code path (#8288) 2020-09-10 13:24:43 +01:00
8294.feature Add experimental support for sharding event persister. Again. (#8294) 2020-09-14 10:16:41 +01:00
8296.misc Use slots in attrs classes where possible (#8296) 2020-09-14 12:50:06 -04:00
8305.feature Add the topic and avatar to the room details admin API (#8305) 2020-09-14 10:07:04 -04:00
8306.feature Admin API for querying rooms where a user is a member (#8306) 2020-09-18 15:26:36 +01:00
8320.feature Allow appservice users to /login (#8320) 2020-09-18 14:55:13 +01:00
8322.bugfix Catch-up after Federation Outage (bonus): Catch-up on Synapse Startup (#8322) 2020-09-18 14:59:13 +01:00
8324.bugfix 1.19.2 2020-09-16 13:37:03 +01:00
8326.misc Switch metaclass initialization to python 3-compatible syntax (#8326) 2020-09-16 15:15:55 -04:00
8329.bugfix Fix a potential bug of UnboundLocalError (#8329) 2020-09-17 11:54:56 +01:00
8330.misc Do not check lint/test dependencies at runtime. (#8377) 2020-09-23 11:45:37 +01:00
8331.misc Use admin_patterns for all admin APIs. (#8331) 2020-09-17 07:04:15 -04:00
8335.misc Update test logging to be able to accept braces (#8335) 2020-09-18 07:56:40 -04:00
8337.misc Remove obsolete __future__ imports (#8337) 2020-09-17 08:37:01 -04:00
8344.misc Simplify super() calls to Python 3 syntax. (#8344) 2020-09-18 09:56:44 -04:00
8353.bugfix Don't push if an user account has expired (#8353) 2020-09-23 16:06:28 +01:00
8354.misc Fix a bad merge from release-v1.20.0. (#8354) 2020-09-18 12:54:04 -04:00
8362.bugfix Fixed a bug with reactivating users with the admin API (#8362) 2020-09-22 18:19:01 +01:00
8364.bugfix Create function to check for long names in devices (#8364) 2020-09-22 11:42:55 +01:00
8370.misc Factor out _send_dummy_event_for_room (#8370) 2020-09-23 18:18:43 +01:00
8371.misc Improve logging of state resolution (#8371) 2020-09-23 16:42:44 +01:00
8372.misc Add type annotations to SimpleHttpClient (#8372) 2020-09-24 15:47:20 +01:00
8373.bugfix Changelog 2020-09-22 19:39:57 +01:00
8374.bugfix Fix MultiWriteIdGenerator's handling of restarts. (#8374) 2020-09-24 16:53:51 +01:00
8375.doc Add note to reverse_proxy.md about disabling Apache's mod_security2 (#8375) 2020-09-23 11:14:08 +01:00
8377.misc Do not check lint/test dependencies at runtime. (#8377) 2020-09-23 11:45:37 +01:00
8383.misc Use async with for ID gens (#8383) 2020-09-23 16:11:18 +01:00
8385.bugfix Fix bug which caused failure on join with malformed membership events (#8385) 2020-09-23 16:42:14 +01:00
8386.bugfix Mark the shadow_banned column as boolean in synapse_port_db. (#8386) 2020-09-24 08:13:55 -04:00
8387.feature Add new sequences to port DB script (#8387) 2020-09-24 13:43:49 +01:00
8388.misc Add EventStreamPosition type (#8388) 2020-09-24 13:24:17 +01:00