|
| 1 | +--- |
| 2 | + date: '2021-06-01' |
| 3 | + title: Synapse 1.35.0 released |
| 4 | + categories: |
| 5 | + - Releases |
| 6 | + author: Dan Callahan |
| 7 | +--- |
| 8 | + |
| 9 | +Synapse 1.35.0 is out! |
| 10 | + |
| 11 | +## Spaces: On by Default |
| 12 | + |
| 13 | +Following the successful release of [Synapse 1.34](../05/05/2021-05-17-synapse-1.34.0-released.mdx), the experimental Spaces flag is now enabled by default. If you had manually enabled the `experimental_features: { spaces_enabled: true }` flag in your homeserver configuration, you may now remove it. |
| 14 | + |
| 15 | +## Bug Squashing |
| 16 | + |
| 17 | +This release of Synapse fixes an issue which could cause federated room joins to fail when the join response exceeded a size limit which was too low ([#10082](https://github.com/matrix-org/synapse/pull/10082)). We've also improved what Synapse logs when it drops a connection in similar circumstances ([#10091](https://github.com/matrix-org/synapse/pull/10091)), which should aid diagnosis if a similar issue were to arise in the future. |
| 18 | + |
| 19 | +GitHub user thermaq contributed a fix ([#10014](https://github.com/matrix-org/synapse/pull/10014)) for a bug which could cause user presence state to become stale. |
| 20 | + |
| 21 | +Lastly our OpenTracing support now allows for profiling end-to-end performance on a per-user basis ([#9978](https://github.com/matrix-org/synapse/pull/9978)). |
| 22 | + |
| 23 | +## An Update on Room Joins |
| 24 | + |
| 25 | +We've been hammering away at shrinking Synapse's memory footprint when joining large / complex rooms, and while we're not there yet, the end is in sight! In particular, this release includes many internal refactorings, including using [ijson](https://pypi.org/project/ijson/) to parse the JSON response to `/send_join` ([#9958](https://github.com/matrix-org/synapse/pull/9958)), which clear the way for substantial improvements. |
| 26 | + |
| 27 | +Memory usage still spikes because we're effectively doing the same work with a different library, but ijson's design allows for iterative parsing. This will pay dividends once we modify the code downstream of `/send_join` to take advantage of it. |
| 28 | + |
| 29 | +Concretely, Erik Johnston has an experimental branch of Synapse which completely eliminates the memory spike: |
| 30 | + |
| 31 | + |
| 32 | + |
| 33 | +The remaining work is centered on splitting that branch into self-contained, reviewable pull requests, like a rewrite of the Synapse Keyring class ([#10035](https://github.com/matrix-org/synapse/pull/10035)). After that's merged, we'll need to make one further change to properly batch up work, at which point we should attain the efficiency gains from Erik's experiment. |
| 34 | + |
| 35 | +## Everything Else |
| 36 | + |
| 37 | +GitHub user savyajha contributed a security hardened systemd unit file which effectively sandboxes Synapse ([#9803](https://github.com/matrix-org/synapse/pull/9803)). While not enabled by default, we'd encourage security conscious users to review the [example file](https://github.com/matrix-org/synapse/blob/v1.35.0/contrib/systemd/override-hardened.conf) and associated [documentation](https://github.com/matrix-org/synapse/blob/v1.35.0/docs/systemd-with-workers/README.md#hardening). |
| 38 | + |
| 39 | +Please see the [Release Notes](https://github.com/matrix-org/synapse/blob/v1.35.0/CHANGES.md) for a complete list of changes in this release. |
| 40 | + |
| 41 | +Synapse is a Free and Open Source Software project, and we'd like to extend our thanks to everyone who contributed to this release, including [dklimpel](https://github.com/dklimpel), [jerinjtitus](https://github.com/jerinjtitus), [junquera](https://github.com/junquera), [lonyeon](https://github.com/lonyeon), [savyajha](https://github.com/savyajha), and [thermaq](https://github.com/thermaq). |
0 commit comments