We've released Synapse 1.30.0!
A key theme of this release was stability and resilience around federation. We've landed changes to be less eager about entering catch up mode and to retry on HTTP 500 errors, while also rejecting transactions which arrive before we've completed processing earlier transactions from that same server. We've significantly optimized how we handle missing events when receiving incoming federation traffic, and we've found a way to re-use the chain cover index (from Synapse 1.26) when responding to the
That last one turns out to be a pretty big deal: we've seen an order of magnitude improvement in both the CPU and DB cost of the
state_ids endpoint. For example, the average CPU usage by that endpoint on matrix.org dropped from few seconds to well under 100ms:
This release also includes further improves to our SSO support, including allowing spam checkers to distinguish between new registrations and first-time SSO users and fixing account reactivation when local passwords are disabled. Now that MSC2858: Multiple SSO Identity Providers has passed its Final Comment Period, we've also updated Synapse to respond to the stable versions of endpoints introduced by that MSC.
See the Release Notes for further information.
Python / Platform Deprecations
As a reminder, the next release of Synapse (1.31, scheduled for April 5th) will be the last to support Python 3.5 or PostgreSQL 9.5, both of which have reached their upstream end of life.
We will also cease building packages for Ubuntu 16.04 (Xenial) and Debian 9 (Stretch) at the same time.
Application Service Registration Changes
Note that Application Services must provide a
type parameter with the value
"m.login.application_service" when calling
POST /_matrix/client/r0/register. Synapse currently allows registration without an explicit
type, but this divergence from the spec will be resolved in a future release.