pacien
07d7cbfe69
devices: use combined ANY clause for faster cleanup ( #15861 )
...
Old device entries for the same user were being removed in individual
SQL commands, making the batch take way longer than necessary.
This combines the commands into a single one with a IN/ANY clause.
Example of log entry before the change, regularly observed with
"log_min_duration_statement = 10000" in PostgreSQL's config:
LOG: duration: 42538.282 ms statement:
DELETE FROM device_lists_stream
WHERE user_id = '@someone' AND device_id = 'someid1'
AND stream_id < 123456789
;
DELETE FROM device_lists_stream
WHERE user_id = '@someone' AND device_id = 'someid2'
AND stream_id < 123456789
;
[repeated for each device ID of that user, potentially a lot...]
With the patch applied on my instance for the past couple of days, I
no longer notice overly long statements of that particular kind.
Signed-off-by: pacien <pacien.trangirard@pacien.net>
2023-07-03 16:39:38 +02:00
reivilibre
cd8b73aa97
Fix the `devenv up` configuration which was ignoring the config overrides. ( #15854 )
...
* Fix use of config override directory in `devenv up`
`--config-directory` is for the generate config script; `-c` is for usage
* Add homeserver config override directory to gitignore
* Newsfile
Signed-off-by: Olivier Wilkinson (reivilibre) <oliverw@matrix.org>
---------
Signed-off-by: Olivier Wilkinson (reivilibre) <oliverw@matrix.org>
2023-07-03 11:39:52 +01:00
reivilibre
53aa26eddc
Add a timeout that aborts any Postgres statement taking more than 1 hour. ( #15853 )
...
* Add a timeout to Postgres statements
* Newsfile
Signed-off-by: Olivier Wilkinson (reivilibre) <oliverw@matrix.org>
---------
Signed-off-by: Olivier Wilkinson (reivilibre) <oliverw@matrix.org>
2023-07-03 11:38:57 +01:00
Eric Eastwood
13fc89148c
Split out 2022 changes from the changelog ( #15846 )
...
Split out 2022 changes from the changelog so the rendered version in GitHub doesn't timeout as much.
2023-06-28 15:10:33 -05:00
Eric Eastwood
472c2c72f6
Prepare changelog for v1.87.0rc1
2023-06-27 10:29:20 -05:00
Shay
78cfa55dad
Fix sqlite `user_filters` upgrade ( #15817 )
2023-06-27 09:41:42 +01:00
Erik Johnston
25c55a9d22
Add login spam checker API ( #15838 )
2023-06-26 14:12:20 +00:00
Nicolas Werner
e0c39d6bb5
Fix forgotten rooms missing in initial sync ( #15815 )
...
If you leave a room and forget it, then rejoin it, the room would be
missing from the next initial sync.
fixes #13262
Signed-off-by: Nicolas Werner <n.werner@famedly.com>
2023-06-21 14:56:31 +01:00
Erik Johnston
289ce3b8d9
Fix harmless exception in port DB script ( #15814 )
...
The port DB script would try and run database background tasks, which
could fail if the data they acted on was in the process of being ported.
These exceptions were non fatal.
Fixes #15789
2023-06-21 13:20:46 +00:00
Erik Johnston
6c749c5124
Fix typo in faster join docs ( #15812 )
...
Fixes #15756
2023-06-21 11:34:32 +01:00
Mathieu Velten
496f73103d
Allow for the configuration of max request retries and min/max retry delays in the matrix federation client ( #15783 )
2023-06-21 10:41:11 +02:00
Shay
6a5cf1a759
Fix Sytest environmental variable evaluation in CI ( #15804 )
2023-06-20 07:55:46 -07:00
ew-at-vier
2301a09d7a
Fix admin api documentation typo ( #15805 )
...
* Fix admin api documentation typo
Signed-off-by: Eric Wolf <eric.wolf@vier.ai>
2023-06-20 10:45:26 +00:00
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
825c5909de
1.86.0rc2
2023-06-14 12:17:29 +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
Mathieu Velten
9966eb10a3
1.86.0rc1
2023-06-13 14:30:51 +02:00
Erik Johnston
ba97b39881
Bump minimum supported Rust version ( #15768 )
...
Important crates such as `log` and `regex` have bumped theirs to 1.60.0
as well.
2023-06-12 13:27:11 +00: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
Erik Johnston
373c0c7ff7
Speed up typechecking CI ( #15752 )
...
By restoring the rust cache before installing the project.
2023-06-09 15:00:30 +01: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
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
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
Eric Eastwood
195b6a298d
Remove redundant `room_memberships` join to find participating servers in a room ( #15732 )
...
Spawning from https://github.com/matrix-org/synapse/pull/15731
2023-06-07 11:45:16 -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
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
Andrew Morgan
d43c72a6c8
Prevent "twisted trunk" and "latest deps" workflows from running on forks ( #15726 )
2023-06-06 18:29:54 +00: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