Eric Eastwood
887fa4b66b
Switch from `matrix://` to `matrix-federation://` scheme for internal Synapse routing of outbound federation traffic ( #15806 )
...
`matrix://` is a registered specced scheme nowadays and doesn't make sense for
our internal to Synapse use case anymore. ([discussion]
(https://github.com/matrix-org/synapse/pull/15773#discussion_r1227598679 ))
2023-06-20 10:05:31 +01:00
Eric Eastwood
0f02f0b4da
Remove experimental MSC2716 implementation to incrementally import history into existing rooms ( #15748 )
...
Context for why we're removing the implementation:
- https://github.com/matrix-org/matrix-spec-proposals/pull/2716#issuecomment-1487441010
- https://github.com/matrix-org/matrix-spec-proposals/pull/2716#issuecomment-1504262734
Anyone wanting to continue MSC2716, should also address these leftover tasks: https://github.com/matrix-org/synapse/issues/10737
Closes https://github.com/matrix-org/synapse/issues/10737 in the fact that it is not longer necessary to track those things.
2023-06-16 14:12:24 -05:00
Andrew Morgan
2ac6c3bbb5
Don't always lock "user_ips" table when performing non-native upsert ( #15788 )
2023-06-16 15:25:44 +01:00
Mathieu Velten
0618bf94cd
push rules: fix internal conversion from _type to value ( #15781 )
...
Also fix wrong rule names for `is_user_mention` and `is_room_mention`.
2023-06-16 14:17:02 +02:00
Mathieu Velten
f63d4a3a65
Regularly try to wake up dests instead of waiting for next PDU/EDU ( #15743 )
2023-06-16 10:15:12 +00:00
Josh Qou
d939120421
Fix unsafe hotserving behaviour for non-multimedia uploads. ( #15680 )
...
* Fix unsafe hotserving behaviour for non-multimedia uploads.
* invert disposition assert
* test_media_storage.py: run lint
* test_base.py: /inline/attachment/s
* Only return attachment for disposition type, update tests
* Update synapse/media/_base.py
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
* Update changelog.d/15680.bugfix
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
* add attribution
* Update changelog.
---------
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
2023-06-15 14:23:27 +01:00
Tulir Asokan
1404f68a03
Fix joining rooms through aliases where the alias server isn't a real homeserver ( #15776 )
2023-06-14 15:42:33 +01:00
Mathieu Velten
87e5df9a6e
Merge branch 'release-v1.86' into develop
2023-06-14 14:54:19 +02:00
Mathieu Velten
ef0d3d7bd9
Revert "Allow for the configuration of max request retries and min/max retry delays in the matrix federation client ( #12504 )"
...
This reverts commit d84e66144d
.
2023-06-14 11:55:57 +02:00
Mathieu Velten
14f9d9b452
Fix empty scope when having version mismatch between workers ( #15774 )
2023-06-14 11:53:55 +02:00
Jason Little
21fea6b749
Prefill events after invalidate not before when persisting events ( #15758 )
...
Fixes #15757
2023-06-14 09:42:18 +01:00
Eric Eastwood
8ddb2de553
Document `looping_call()` functionality that will wait for the given function to finish before scheduling another ( #15772 )
...
Thanks to @erikjohnston for clarifying, https://github.com/matrix-org/synapse/pull/15743#discussion_r1226544457
We don't have to worry about calls stacking up if the given function takes longer than the scheduled time.
2023-06-13 16:34:54 -05:00
Shay
553f2f53e7
Replace `EventContext` fields `prev_group` and `delta_ids` with field `state_group_deltas` ( #15233 )
2023-06-13 13:22:06 -07:00
Mathieu Velten
59ec4a0dc1
Fix MSC3983 support: only one OTK per device was returned through federation ( #15770 )
2023-06-13 19:51:47 +02:00
Eric Eastwood
0757d59ec4
Avoid backfill when we already have messages to return ( #15737 )
...
We now only block the client to backfill when we see a large gap in the events (more than 2 events missing in a row according to `depth`), more than 3 single-event holes, or not enough messages to fill the response. Otherwise, we return the messages directly to the client and backfill in the background for eventual consistency sake.
Fix https://github.com/matrix-org/synapse/issues/15696
2023-06-13 12:31:08 -05:00
Patrick Cloke
df945e0d7c
Fix MSC3983 support: Use the unstable /keys/claim federation endpoint if multiple keys are requested ( #15755 )
2023-06-13 18:07:55 +02:00
Eric Eastwood
fcc3ca37e1
Backfill in the background if we're doing it "just because" ( #15710 )
...
Fix https://github.com/matrix-org/synapse/issues/15702
2023-06-09 15:39:49 -05:00
Shay
d84e66144d
Allow for the configuration of max request retries and min/max retry delays in the matrix federation client ( #12504 )
...
Co-authored-by: Mathieu Velten <mathieuv@matrix.org>
Co-authored-by: Erik Johnston <erik@matrix.org>
2023-06-09 09:00:46 +02:00
Erik Johnston
f6321e386c
Merge branch 'master' into develop
2023-06-08 13:16:46 +01:00
Erik Johnston
c485ed1c5a
Clear event caches when we purge history ( #15609 )
...
This should help a little with #13476
---------
Co-authored-by: Patrick Cloke <patrickc@matrix.org>
2023-06-08 13:14:40 +01:00
Erik Johnston
733342ad3e
Fix using TLS for replication ( #15746 )
...
Fixes #15744 .
2023-06-08 13:03:48 +01:00
David Robertson
d162aecaac
Quick & dirty metric for background update status ( #15740 )
...
* Quick & dirty metric for background update status
* Changelog
* Remove debug
Co-authored-by: Mathieu Velten <mathieuv@matrix.org>
* Actually write to _aborted
---------
Co-authored-by: Mathieu Velten <mathieuv@matrix.org>
2023-06-07 17:12:23 +00:00
Eric Eastwood
e536f02f68
Remove superfluous `room_memberships` join from background update ( #15733 )
...
Spawning from https://github.com/matrix-org/synapse/pull/15731
2023-06-07 11:47:01 -05:00
Grant McLean
5c24d7b9eb
Check required power levels earlier in createRoom handler. ( #15695 )
...
* Check required power levels earlier in createRoom handler.
- If a server was configured to reject the creation of rooms with E2EE
enabled (by specifying an unattainably high power level for
"m.room.encryption" in default_power_level_content_override), the 403
error was not being triggered until after the room was created and
before the "m.room.power_levels" was sent. This allowed a user to
access the partially-configured room and complete the setup of E2EE
and power levels manually.
- This change causes the power level overrides to be checked earlier and
the request to be rejected before the user gains access to the room.
- A new `_validate_room_config` method is added to contain checks that
should be run before a room is created.
- The new test case confirms that a user request is rejected by the new
validation method.
Signed-off-by: Grant McLean <grant@catalyst.net.nz>
* Add a changelog file.
* Formatting fix for black.
* Remove unneeded line from test.
---------
Signed-off-by: Grant McLean <grant@catalyst.net.nz>
2023-06-07 16:21:25 +01:00
Erik Johnston
8934c11935
Merge branch 'master' into develop
2023-06-07 14:45:19 +01:00
Erik Johnston
f7c6553ebc
Fix schema delta error in 1.85 ( #15739 )
...
Some users seem to have multiple rows per user / room with a null thread
ID, which we need to handle.
2023-06-07 13:02:42 +01:00
Erik Johnston
a701c089fa
Fix schema delta error in 1.85 ( #15738 )
...
There appears to be a race where you can end up with entries in
`event_push_summary` with both a `NULL` and `main` thread ID.
Fixes #15736
Introduced in #15597
2023-06-07 10:50:32 +01:00
Eric Eastwood
9d911b0da6
No need for the extra join since `membership` is built-in to `current_state_events` ( #15731 )
...
This helps with the upstream `is_host_joined()` and `is_host_invited()` functions.
`membership` was added to `current_state_events` in https://github.com/matrix-org/synapse/pull/5706 and forced in https://github.com/matrix-org/synapse/pull/13745
2023-06-06 22:19:57 -05:00
Eric Eastwood
8bfded81f3
Trace functions which return `Awaitable` ( #15650 )
2023-06-06 17:39:22 -05:00
Eric Eastwood
4e6390cb10
Update error to more plainly explain we can only authorize our own events ( #15725 )
2023-06-06 16:26:12 -05:00
Eric Eastwood
33c3550887
Add context for when/why to use the `long_retries` option when sending Federation requests ( #15721 )
2023-06-06 16:25:03 -05:00
Shay
6ee96e9366
Improve performance of user directory search ( #15729 )
2023-06-06 21:16:03 +01:00
Sean Quah
dfd77f426e
Remove some unused `server_name` fields ( #15723 )
...
Signed-off-by: Sean Quah <seanq@matrix.org>
2023-06-06 12:32:29 +01:00
Patrick Cloke
f880e64b11
Stabilize support for MSC3952: Intentional mentions. ( #15520 )
2023-06-06 09:11:07 +01:00
Eric Eastwood
f9561b9e37
Some house keeping on `maybe_backfill()` functions ( #15709 )
2023-06-05 23:38:52 -05:00
Shay
d0c4257f14
`N + 3`: Read from column `full_user_id` rather than `user_id` of tables `profiles` and `user_filters` ( #15649 )
2023-06-02 17:24:13 -07:00
Mathieu Velten
e0f2429d13
Add a catch-all * to the supported relation types when redacting ( #15705 )
...
This is an update to MSC3912 implementation
2023-06-02 13:13:50 +00:00
Eric Eastwood
30a5076da8
Log when events are (unexpectedly) filtered out of responses in tests ( #14213 )
...
See https://github.com/matrix-org/synapse/pull/14095#discussion_r990335492
This is useful because when see that a relevant event is an `outlier` or `soft-failed`, then that's a good unexpected indicator explaining why it's not showing up. `filter_events_for_client` is used in `/sync`, `/messages`, `/context` which are all common end-to-end assertion touch points (also notifications, relations).
2023-06-01 21:27:18 -05:00
H. Shay
8af29155ec
Merge branch 'release-v1.85' into develop
2023-06-01 10:26:37 -07:00
Erik Johnston
5ed0e8c61f
Cache requests for user's devices from federation ( #15675 )
...
This should mitigate the issue where lots of different servers requests
the same user's devices all at once.
2023-06-01 13:25:20 +00:00
Hugh Nimmo-Smith
d1693f0362
Implement stable support for MSC3882 to allow an existing device/session to generate a login token for use on a new device/session ( #15388 )
...
Implements stable support for MSC3882; this involves updating Synapse's support to
match the MSC / the spec says.
Continue to support the unstable version to allow clients to transition.
2023-06-01 08:52:51 -04:00
Shay
6d9e2fd878
Speed up background jobs populate_full_user_id_user_filters and populate_full_user_id_profiles ( #15700 )
2023-05-31 15:13:48 -07:00
Patrick Cloke
6f18812bb0
Add stubs package for lxml. ( #15697 )
...
The stubs have some issues so this has some generous cast
and ignores in it, but it is better than not having stubs.
Note that confusing that Element is a function which creates
_Element instances (and similarly for Comment).
2023-05-31 17:06:57 +00:00
reivilibre
11e15d79b8
Fix a performance issue introduced in Synapse v1.83.0 which meant that purging rooms was very slow and database-intensive. ( #15693 )
...
* Add indices required to efficiently validate new foreign key constraints on stream_ordering
* Newsfile
Signed-off-by: Olivier Wilkinson (reivilibre) <oliverw@matrix.org>
---------
Signed-off-by: Olivier Wilkinson (reivilibre) <oliverw@matrix.org>
2023-05-31 14:59:56 +01:00
Gabriel Féron
daf3a67908
Add get_canonical_room_alias to module API ( #15450 )
...
Co-authored-by: Boxdot <d@zerovolt.org>
2023-05-31 09:18:37 -04:00
Patrick Cloke
c01343de43
Add stricter mypy options ( #15694 )
...
Enable warn_unused_configs, strict_concatenate, disallow_subclassing_any,
and disallow_incomplete_defs.
2023-05-31 07:18:29 -04:00
Quentin Gliech
ceb3dd77db
Enforce that an admin token also has the basic Matrix API scope
2023-05-30 09:43:06 -04:00
Quentin Gliech
32a2f05004
Make the config tests spawn the homeserver only when needed
2023-05-30 09:43:06 -04:00
Quentin Gliech
f739bde962
Reject tokens with multiple device scopes
2023-05-30 09:43:06 -04:00
Quentin Gliech
98afc57d59
Make OIDC scope constants
2023-05-30 09:43:06 -04:00