Synapse 1.38.0 is out now!
NOTE: We released Synapse 1.38.1 on Thursday, July 22nd. It mitigates a client bug with Synapse 1.38.0's smaller sync responses which prevented new Element Android sessions from successfully participating in encrypted conversations. Server administrators are strongly encouraged to upgrade.
Synapse's database schema used
integer columns in a few places where values could potentially overflow a maximum value of 231. One such column is
events.stream_ordering, which surpassed 231 on matrix.org last week.
To prevent overflows, Synapse 1.38 will automatically convert several
integer columns to
bigint as a background update. While homeservers will function normally during this task, it could result in increased disk I/O for several hours or days. Note that homeservers may need several gigabytes of free space to successfully rebuild associated database indexes and complete the upgrade.
See the upgrade notes for more details.
Synapse has a new configuration option,
caches.expiry_time, which can be set to enable evicting items from caches if they go too long without being accessed. This helps servers reclaim memory used by large yet infrequently used caches.
The response to
/sync now omits optional keys when they would otherwise be empty. This can significantly reduce the size of incremental syncs, as demonstrated in #6579. Thanks to deepbluev7 for initially submitting this in #9919, which made it into this release via #10214.
A few other items worth calling out: