- Jan 30, 2023
-
-
David Robertson authored
Co-authored-by:
Olivier Wilkinson (reivilibre) <oliverw@matrix.org> Co-authored-by:
Shay <hillerys@element.io>
-
- Jan 27, 2023
-
-
David Robertson authored
-
- Jan 26, 2023
-
-
Patrick Cloke authored
* Batch look-ups to see if rooms are partial stated. * Fix issues found in linting. * Fix typo. * Apply suggestions from code review Co-authored-by:
Sean Quah <8349537+squahtx@users.noreply.github.com> * Clarify comments. Co-authored-by:
Sean Quah <8349537+squahtx@users.noreply.github.com> * Also improve the cache size while we're at it * is_partial_state_rooms -> is_partial_state_room_batched * Run `black` * Improve annotation for `simple_select_many_batch` * Fix is_partial_state_room_batched impl * Okay, _actually_ fix impl * Update description. * Update synapse/storage/databases/main/room.py Co-authored-by:
Patrick Cloke <clokep@users.noreply.github.com> * Run black. Co-authored-by:
Sean Quah <8349537+squahtx@users.noreply.github.com> Co-authored-by:
David Robertson <davidr@element.io>
-
Sean Quah authored
On startup, the `_device_list_id_gen` stream id generator is initialized using the maximum stream id seen in a list of tables. When we started populating the `device_list_remote_pending` table in #13913, we forgot to add it to the aforementioned list of tables, so the stream id generator can hand out old stream ids after a restart. The end result is that Synapse can fail to handle device list update EDUs after a restart when a partial state join is in progress. Add the `device_list_remote_pending` table to the list of tables to consider when initializing the `_device_list_id_gen` stream id generator. Signed-off-by:
Sean Quah <seanq@matrix.org>
-
- Jan 25, 2023
-
-
David Robertson authored
-
David Robertson authored
-
David Robertson authored
-
David Robertson authored
-
David Robertson authored
* Bump the client-side timeout for /state to allow faster joins resyncs the chance to complete for large rooms. We have seen this fair poorly (~90s for Matrix HQ's /state) in testing, causing the resync to advance to another HS who hasn't seen our join yet. * Changelog * Milliseconds!!!!
-
Sean Quah authored
#13873 introduced a regression which causes sqlite database migrations to no longer run inside a transaction. Wrap them in a transaction again, to avoid database corruption when migrations are interrupted. Fixes #14909. Signed-off-by:
Sean Quah <seanq@matrix.org>
-
ZAID BIN TARIQ authored
-
- Jan 24, 2023
-
-
David Robertson authored
* Request partial joins by default This is a little sloppy, but we are trying to gain confidence in faster joins in the upcoming RC. Admins can still opt out by adding the following to their Synapse config: ```yaml experimental: faster_joins: false ``` We may revert this change before the release proper, depending on how testing in the wild goes. * Changelog * Try to fix the backfill test failures * Upgrade notes * Postgres compat?
-
- Jan 23, 2023
-
-
David Robertson authored
* Allow `AbstractSet` in `StrCollection` Or else frozensets are excluded. This will be useful in an upcoming commit where I plan to change a function that accepts `List[str]` to accept `StrCollection` instead. * `rooms_to_exclude` -> `rooms_to_exclude_globally` I am about to make use of this exclusion mechanism to exclude rooms for a specific user and a specific sync. This rename helps to clarify the distinction between the global config and the rooms to exclude for a specific sync. * Better function names for internal sync methods * Track a list of excluded rooms on SyncResultBuilder I plan to feed a list of partially stated rooms for this sync to ignore * Exclude partial state rooms during eager sync using the mechanism established in the previous commit * Track un-partial-state stream in sync tokens So that we can work out which rooms have become fully-stated during a given sync period. * Fix mutation of `@cached` return value This was fouling up a complement test added alongside this PR. Excluding a room would mean the set of forgotten rooms in the cache would be extended. This means that room could be erroneously considered forgotten in the future. Introduced in #12310, Synapse 1.57.0. I don't think this had any user-visible side effects (until now). * SyncResultBuilder: track rooms to force as newly joined Similar plan as before. We've omitted rooms from certain sync responses; now we establish the mechanism to reintroduce them into future syncs. * Read new field, to present rooms as newly joined * Force un-partial-stated rooms to be newly-joined for eager incremental syncs only, provided they're still fully stated * Notify user stream listeners to wake up long polling syncs * Changelog * Typo fix Co-authored-by:
Sean Quah <8349537+squahtx@users.noreply.github.com> * Unnecessary list cast Co-authored-by:
Sean Quah <8349537+squahtx@users.noreply.github.com> * Rephrase comment Co-authored-by:
Sean Quah <8349537+squahtx@users.noreply.github.com> * Another comment Co-authored-by:
Sean Quah <8349537+squahtx@users.noreply.github.com> * Fixup merge(?) * Poke notifier when receiving un-partial-stated msg over replication * Fixup merge whoops Thanks MV :) Co-authored-by:
Mathieu Velen <mathieuv@matrix.org> Co-authored-by:
Mathieu Velten <mathieuv@matrix.org> Co-authored-by:
Sean Quah <8349537+squahtx@users.noreply.github.com>
-
dependabot[bot] authored
-
dependabot[bot] authored
-
dependabot[bot] authored
-
dependabot[bot] authored
-
dependabot[bot] authored
-
Patrick Cloke authored
* Skip processing stats for broken rooms. * Newsfragment * Use a custom exception.
-
Sean Quah authored
* Faster joins: Update room stats and user directory on workers when done When finishing a partial state join to a room, we update the current state of the room without persisting additional events. Workers receive notice of the current state update over replication, but neglect to wake the room stats and user directory updaters, which then get incidentally triggered the next time an event is persisted or an unrelated event persister sends out a stream position update. We wake the room stats and user directory updaters at the appropriate time in this commit. Part of #12814 and #12815. Signed-off-by:
Sean Quah <seanq@matrix.org> * fixup comment Signed-off-by:
Sean Quah <seanq@matrix.org>
-
- Jan 22, 2023
-
-
reivilibre authored
* Enable Complement tests for Faster Remote Room Joins on worker-mode * (dangerous) Add an override to allow Complement to use FRRJ under workers * Newsfile Signed-off-by:
Olivier Wilkinson (reivilibre) <oliverw@matrix.org> * Fix race where we didn't send out replication notification * MORE HACKS * Fix get_un_partial_stated_rooms_token to take instance_name * Fix bad merge * Remove warning * Correctly advance un_partial_stated_room_stream * Fix merge * Add another notify_replication * Fixups * Create a separate ReplicationNotifier * Fix test * Fix portdb * Create a separate ReplicationNotifier * Fix test * Fix portdb * Fix presence test * Newsfile * Apply suggestions from code review * Update changelog.d/14752.misc Co-authored-by:
Erik Johnston <erik@matrix.org> * lint Signed-off-by:
Olivier Wilkinson (reivilibre) <oliverw@matrix.org> Co-authored-by:
Erik Johnston <erik@matrix.org>
-
Sean Quah authored
* Avoid clearing out forward extremities when doing a second remote join When joining a restricted room where the local homeserver does not have a user able to issue invites, we perform a second remote join. We want to avoid clearing out forward extremities in this case because the forward extremities we have are up to date and clearing out forward extremities creates a window in which the room can get bricked if Synapse crashes. Signed-off-by:
Sean Quah <seanq@matrix.org> * Do a full join when doing a second remote join into a full state room We cannot persist a partial state join event into a joined full state room, so we perform a full state join for such rooms instead. As a future optimization, we could always perform a partial state join and compute or retrieve the full state ourselves if necessary. Signed-off-by:
Sean Quah <seanq@matrix.org> * Add lock around partial state flag for rooms Signed-off-by:
Sean Quah <seanq@matrix.org> * Preserve partial state info when doing a second partial state join Signed-off-by:
Sean Quah <seanq@matrix.org> * Add newsfile * Add a TODO(faster_joins) marker Signed-off-by:
Sean Quah <seanq@matrix.org>
-
Andrew Morgan authored
-
- Jan 21, 2023
-
-
Andrew Morgan authored
-
- Jan 20, 2023
-
-
Erik Johnston authored
Now that we wait for stream positions whenever we do a HTTP replication hit, we need to be less brutal in the case where we do timeout (as we have bugs around this).
-
Erik Johnston authored
This ensures that all other workers are told about stream updates in a timely manner, without having to remember to manually poke replication.
-
katlol authored
Closes https://github.com/matrix-org/synapse/issues/13234 Signed-off-by:
Katia Esposito <1695469+katlol@users.noreply.github.com> Signed-off-by:
Katia Esposito <1695469+katlol@users.noreply.github.com>
-
Sean Quah authored
Currently, we will try to start a new partial state sync every time we perform a remote join, which is undesirable if there is already one running for a given room. We intend to perform remote joins whenever additional local users wish to join a partial state room, so let's ensure that we do not start more than one concurrent partial state sync for any given room. ------------------------------------------------------------------------ There is a race condition where the homeserver leaves a room and later rejoins while the partial state sync from the previous membership is still running. There is no guarantee that the previous partial state sync will process the latest join, so we restart it if needed. Signed-off-by:
Sean Quah <seanq@matrix.org>
-
- Jan 19, 2023
-
-
Erik Johnston authored
This caused some requests to fail. This caused some requests to fail. This really only started causing issues due to #14856
-
Andrew Morgan authored
-
Richard van der Hoff authored
You do not have to restart synapse to reload the log config.
-
- Jan 18, 2023
-
-
Erik Johnston authored
This should hopefully mitigate a class of races where data gets out of sync due a HTTP replication request racing with the replication streams.
-
Catalan Lover authored
* Change Documentation to have v10 as default room version * Change Default Room version to 10 * Add changelog entry for default room version swap * Add changelog entry for v10 default room version in docs * Clarify doc changelog entry Co-authored-by:
David Robertson <david.m.robertson1@gmail.com> * Improve Documentation changes. Co-authored-by:
David Robertson <david.m.robertson1@gmail.com> * Update Changelog entry to have correct format Co-authored-by:
David Robertson <david.m.robertson1@gmail.com> * Update Spec Version to 1.5 * Only need 1 changelog. * Fix test. * Update "Changed in" line Co-authored-by:
David Robertson <david.m.robertson1@gmail.com> Co-authored-by:
Patrick Cloke <clokep@users.noreply.github.com> Co-authored-by:
Patrick Cloke <patrickc@matrix.org>
-
Patrick Cloke authored
Check for for an instance of a mapping instead of a dict. This only affects room version 10 when frozen events are enabled.
-
- Jan 17, 2023
-
-
dependabot[bot] authored
Bumps [packaging](https://github.com/pypa/packaging) from 22.0 to 23.0. - [Release notes](https://github.com/pypa/packaging/releases) - [Changelog](https://github.com/pypa/packaging/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pypa/packaging/compare/22.0...23.0 ) --- updated-dependencies: - dependency-name: packaging dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by:
dependabot[bot] <support@github.com> Signed-off-by:
dependabot[bot] <support@github.com> Co-authored-by:
dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
dependabot[bot] authored
Bumps [phonenumbers](https://github.com/daviddrysdale/python-phonenumbers) from 8.13.2 to 8.13.4. - [Release notes](https://github.com/daviddrysdale/python-phonenumbers/releases) - [Commits](https://github.com/daviddrysdale/python-phonenumbers/compare/v8.13.2...v8.13.4 ) --- updated-dependencies: - dependency-name: phonenumbers dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by:
dependabot[bot] <support@github.com> Signed-off-by:
dependabot[bot] <support@github.com> Co-authored-by:
dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
dependabot[bot] authored
Bumps [sentry-sdk](https://github.com/getsentry/sentry-python) from 1.12.1 to 1.13.0. - [Release notes](https://github.com/getsentry/sentry-python/releases) - [Changelog](https://github.com/getsentry/sentry-python/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-python/compare/1.12.1...1.13.0 ) --- updated-dependencies: - dependency-name: sentry-sdk dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by:
dependabot[bot] <support@github.com> Signed-off-by:
dependabot[bot] <support@github.com> Co-authored-by:
dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
-
dependabot[bot] authored
* Bump ruff from 0.0.215 to 0.0.224 Bumps [ruff](https://github.com/charliermarsh/ruff) from 0.0.215 to 0.0.224. - [Release notes](https://github.com/charliermarsh/ruff/releases) - [Changelog](https://github.com/charliermarsh/ruff/blob/main/BREAKING_CHANGES.md) - [Commits](https://github.com/charliermarsh/ruff/compare/v0.0.215...v0.0.224 ) --- updated-dependencies: - dependency-name: ruff dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by:
dependabot[bot] <support@github.com> * Changelog Signed-off-by:
dependabot[bot] <support@github.com> Co-authored-by:
dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by:
GitHub Actions <github-actions[bot]@users.noreply.github.com>
-