Skip to content

Conversation

@jason-famedly
Copy link
Contributor

@jason-famedly jason-famedly commented Jul 17, 2025

New version of Synapse

v1.131.0_1 -> v1.132.0_1

Upstream Changes
Special Notes:

  • Most interesting change here is that the configuration manual is now produced per a schema which makes it machine readable. See Machine-readable config description element-hq/synapse#17892

    The linting script Synapse uses now checks this json schema file and fixes/reproduces it as necessary. Between this version and the next they did find out that it was "out-of-sync" by one line and fixed it in v1.133.0(specifically in Fixup generated config documentation element-hq/synapse#18568). As such I will not make that fix now. The linting script is not run directly in CI but instead broken into it's component parts, and will not break in the mean time.

No Famedly additions in this release

uhoreg and others added 24 commits May 28, 2025 12:20
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
… callback (#18486)

This PR adds an additional `room_config` argument to the
`user_may_create_room` spam checker module API callback.

It will continue to work with implementations of `user_may_create_room`
that do not expect the additional parameter.

A side affect is that on a room upgrade the spam checker callback is
called *after* doing some work to calculate the state rather than
before. However, I hope that this is acceptable given the relative
infrequency of room upgrades.
…size (#18457)

Adds new callbacks for media related functionality:

- `get_media_config_for_user`
- `is_user_allowed_to_upload_media_of_size`
…408)

There are alternative ways to use low numbered ports besides root. Users
might be mislead into thinking they should run Synapse with root
privileges.
This implements
matrix-org/matrix-spec-proposals#4155, which
adds support for a new account data type that blocks an invite based on
some conditions in the event contents.

---------

Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
… 1 day, rather than 30 days. (#18310)

Clean up `received_transactions` older than 1 day, rather than 30 days \
Reduces disk waste by homeservers

Closes #6437

---------

Signed-off-by: Olivier 'reivilibre <oliverw@matrix.org>
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
…me Quantiles" graph (#18510)

(Applies to the Grafana graphs)

As discovered by @devonh, we use `synapse_storage_events_persisted_events_total` (which tracks *all* persisted events) for the "Events" rate in the "Event Send Time Quantiles" graph. This is pretty misleading as I would expect it to be the rate of events being sent given the graph title, "Event Send Time Quantiles".

Since the event persistence queues are shared for local and remote events from federation and will block local events being sent, I think it does still make sense to have the event persist rate. I've updated the graph to include the rate of "Local events being persisted" and the rate of "All events being persisted". I think this properly disambiguates and clarifies what the graph is trying to show.
Co-authored-by: Andrew Morgan <andrew@amorgan.xyz>
Fixes element-hq/synapse#14240

This scratches an itch that i've had for years. We regularly run into
the issue where (especially in development) appservices can go down for
a period and them come back up. The ping endpoint was introduced some
time ago which means Synapse can determine if an AS is up more or less
immediately, so we might as well use that to schedule transaction
redelivery.

I believe transaction scheduling logic is largely implementation
specific, so we should be in the clear to do this without any spec
changes.
Fixes the self-ignore issues we've being seeing of reports of by
ignoring bad requests from clients.
Fixes element-hq/synapse#11963

Fix element-hq/element-web#29969 although this
should also be fixed on the client to avoid confusing errors popping up
while rejecting invites.

Related to matrix-org/matrix-rust-sdk#5073
This small PR migrates from `unittest.assertEquals` to
`unittest.assertEqual` which is deprecated from Python2.7:
```python
DeprecationWarning: Please use assertEqual instead.
```

Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
…chema. (#18522)

Follows: #17892, #18456

<ol>
<li>

Add config doc generation command to lint.sh 

</li>
<li>

Add missing `user_types` config schema 

</li>
</ol>

---------

Signed-off-by: Olivier 'reivilibre <oliverw@matrix.org>
@jason-famedly jason-famedly marked this pull request as ready for review July 18, 2025 10:37
@jason-famedly jason-famedly requested a review from a team as a code owner July 18, 2025 10:37
@jason-famedly
Copy link
Contributor Author

There is a new Schema workflow that was added to check the configuration generation is valid and up-to-date. I have left it enabled

@jason-famedly
Copy link
Contributor Author

The Complement failure at: https://github.com/famedly/synapse/actions/runs/16356268004 appears to be because of a new feature being tested that will not appear in Synapse until v1.135.0, element-hq/synapse#18195

The sytest failure appears to be one of the known flakes from upstream. In particular this one is one of those caused by a redis failure during the replication subscribing command that prevents the worker(in this case it hit the stream_writers worker on server-1) from receiving new data advancing streams.

2025-07-17 21:29:16,884 - synapse.replication.tcp.redis - 138 - INFO - subscribe-replication-0 - Sending redis SUBSCRIBE for ['127.0.0.1:8879']
2025-07-17 21:29:16,885 - synapse.replication.tcp.redis - 141 - INFO - subscribe-replication-0 - Successfully subscribed to redis stream, sending REPLICATE command
2025-07-17 21:29:16,885 - synapse.metrics.background_process_metrics - 253 - ERROR - subscribe-replication-0 - Background process 'subscribe-replication' threw an exception
Traceback (most recent call last):
  File "/synapse/synapse/metrics/background_process_metrics.py", line 251, in run
    return await func(*args, **kwargs)
  File "/synapse/synapse/replication/tcp/redis.py", line 145, in _send_subscribe
    await self._async_send_command(ReplicateCommand())
  File "/synapse/synapse/replication/tcp/redis.py", line 239, in _async_send_command
    await make_deferred_yieldable(
  File "/venv/lib/python3.9/site-packages/twisted/internet/defer.py", line 1179, in send
    raise result.value
Exception: getConnection yielded with context subscribe-replication-0 rather than sentinel, yielded on line 2357 in /venv/lib/python3.9/site-packages/txredisapi.py

Which manifests later as a series of(for various/all streams):

2025-07-17 21:33:15,378 - synapse.replication.tcp.client - 356 - WARNING - POST-32 - Timed out waiting for repl stream 'caches' to reach 220 (master); currently at: 3

I will re-run this test series to see if it goes away

Base automatically changed from famedly-release/v1.131 to master July 21, 2025 12:21
@jason-famedly jason-famedly merged commit 4978847 into master Jul 21, 2025
39 of 46 checks passed
@jason-famedly jason-famedly deleted the famedly-release/v1.132 branch July 21, 2025 12:41
@jason-famedly jason-famedly restored the famedly-release/v1.132 branch July 21, 2025 12:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.