Eric Eastwood
7c2a78bb3b
Marker events as state - MSC2716 ( #12718 )
...
Sending marker events as state now so they are always able to be seen by homeservers (not lost in some timeline gap).
Part of [MSC2716](https://github.com/matrix-org/matrix-spec-proposals/pull/2716 )
Complement tests: https://github.com/matrix-org/complement/pull/371
As initially discussed at https://github.com/matrix-org/matrix-spec-proposals/pull/2716#discussion_r782629097 and https://github.com/matrix-org/matrix-spec-proposals/pull/2716#discussion_r876684431
When someone joins a room, process all of the marker events we see in the current state. Marker events should be sent with a unique `state_key` so that they can all resolve in the current state to easily be discovered. Marker events as state
- If we re-use the same `state_key` (like `""`), then we would have to fetch previous snapshots of state up through time to find all of the marker events. This way we can avoid all of that. This PR was originally doing this but then thought of the smarter way to tackle in an [out of band discussion with @erikjohnston](https://docs.google.com/document/d/1JJDuPfcPNX75fprdTWlxlaKjWOdbdJylbpZ03hzo638/edit#bookmark=id.sm92fqyq7vpp ).
- Also avoids state resolution conflicts where only one of the marker events win
As a homeserver, when we see new marker state, we know there is new history imported somewhere back in time and should process it to fetch the insertion event where the historical messages are and set it as an insertion extremity. This way we know where to backfill more messages when someone asks for scrollback.
2022-05-23 20:43:37 -05:00
David Teller
28199e9357
Uniformize spam-checker API, part 2: check_event_for_spam ( #12808 )
...
Signed-off-by: David Teller <davidt@element.io>
2022-05-23 17:27:39 +00:00
Brendan Abolivier
4cc4229cd7
Prevent expired events from being filtered out when retention is disabled ( #12611 )
...
Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com>
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
2022-05-23 17:18:23 +00:00
Jess Porter
a608ac847b
add SpamChecker callback for silently dropping inbound federated events ( #12744 )
...
Signed-off-by: jesopo <github@lolnerd.net>
2022-05-23 16:36:21 +00:00
reivilibre
7a68203cde
Disable 'faster room join' Complement tests when testing against Synapse with workers. ( #12842 )
2022-05-23 17:27:05 +01:00
reivilibre
67aae05ece
Support registering Application Services when running with workers under Complement. ( #12826 )
...
Co-authored-by: Patrick Cloke <clokep@users.noreply.github.com>
2022-05-23 14:11:06 +01:00
Dirk Klimpel
444588c5fc
Add some type hints to tests files ( #12833 )
...
Co-authored-by: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2022-05-23 11:23:26 +00:00
reivilibre
438925c422
Fix Complement `TestCanRegisterAdmin` with workers, by adding Complement's shared registration secret. ( #12819 )
2022-05-23 12:20:30 +01:00
Andrew Morgan
a6ab3f5619
Add a windows->unix file endings commit to git blame ignore file ( #12824 )
2022-05-23 11:28:14 +01:00
reivilibre
4fef76ca34
Remove Caddy from the Synapse workers image used in Complement. ( #12818 )
2022-05-23 10:29:24 +01:00
reivilibre
fbf904bd54
Fix media thumbnails being unusable before the index had been added in the background. ( #12823 )
2022-05-23 10:28:56 +01:00
reivilibre
39dee30f01
Send `USER_IP` commands on a different Redis channel, in order to reduce traffic to workers that do not process these commands. ( #12809 )
2022-05-20 15:28:23 +01:00
David Teller
10280fc943
Uniformize spam-checker API, part 1: the `Code` enum. ( #12703 )
2022-05-20 14:53:25 +02:00
Shay
71e8afe34d
Update EventContext `get_current_event_ids` and `get_prev_event_ids` to accept state filters and update calls where possible ( #12791 )
2022-05-20 09:54:12 +01:00
Sean Quah
2be5a2b07b
Fix `RetryDestinationLimiter` re-starting finished log contexts ( #12803 )
...
Signed-off-by: Sean Quah <seanq@matrix.org>
2022-05-19 20:17:10 +01:00
Andrew Morgan
96df31239c
Add a unit test for copying over arbitrary room types when upgrading a room ( #12792 )
2022-05-19 18:32:48 +01:00
reivilibre
177b884ad7
Lay some foundation work to allow workers to only subscribe to some kinds of messages, reducing replication traffic. ( #12672 )
2022-05-19 16:29:08 +01:00
Shay
eb4aaa1b4b
Add detail to `cache_autotuning` config option documentation ( #12776 )
2022-05-19 07:47:07 -07:00
Shay
ab2a615cfb
Update configuration manual to document size-related suffixes ( #12777 )
2022-05-19 07:46:33 -07:00
Petr Vaněk
684feeaf2f
Properly close providers.json file stream. ( #12794 )
2022-05-19 14:23:59 +00:00
reivilibre
66a5f6c400
Add a unique index to `state_group_edges` to prevent duplicates being accidentally introduced and the consequential impact to performance. ( #12687 )
2022-05-19 14:16:49 +01:00
Jae Lo Presti
f16ec055cc
hash_password: raise an error if no config file is specified ( #12789 )
2022-05-19 13:03:13 +00:00
David Robertson
b935c9529c
Simplify untyped-defs config in mypy.ini ( #12790 )
2022-05-19 13:49:58 +01:00
Aminda Suomalainen
d25935cd3d
Implement MSC3818: copy room type on upgrade ( #12786 )
...
Resolves : #11896
Signed-off-by: Aminda Suomalainen <suomalainen+git@mikaela.info>
2022-05-19 12:28:10 +01:00
Sami Olmari
47619017f9
Add missing user directory search endpoint to the generic worker documentation ( #12773 )
...
Signed-off-by: Sami Olmari <sami@olmari.fi>
2022-05-19 12:03:12 +01:00
Richard van der Hoff
5675cebfaa
openid.md: fix some links
...
docbook doesn't auto-linkify links
2022-05-19 10:28:18 +01:00
David Robertson
6ff99e3bea
Downgrade some OIDC exceptions to warnings ( #12723 )
2022-05-18 20:10:21 +01:00
Patrick Cloke
a1cb05b3e8
Fix federation in demo scripts. ( #12783 )
2022-05-18 14:49:33 -04:00
Richard van der Hoff
d38c73e9ab
Skip waiting for full state if a StateFilter does not require it ( #12498 )
...
If `StateFilter` specifies a state set which we will have regardless of
state-syncing, then we may as well return it immediately.
2022-05-18 18:33:57 +00:00
Andrew Morgan
0fce474a40
Fix YAML parsing error in `url_preview_accept_language` ( #12785 )
2022-05-18 17:24:44 +00:00
Shay
19d79b6ebe
Refactor `resolve_state_groups_for_events` to not pull out full state when no state resolution happens. ( #12775 )
2022-05-18 10:15:52 -07:00
Sean Quah
3d8839c30c
Add documentation for cancellation of request processing ( #12761 )
...
Signed-off-by: Sean Quah <seanq@matrix.org>
2022-05-18 17:56:23 +01:00
Dirk Klimpel
50ae4eafe1
Add some type hints to `event_federation` datastore ( #12753 )
...
Co-authored-by: David Robertson <david.m.robertson1@gmail.com>
2022-05-18 16:02:10 +01:00
Brendan Abolivier
682431efbe
Merge branch 'master' into develop
2022-05-18 15:53:18 +01:00
reivilibre
635f0d916b
Do not keep going if there are 5 back-to-back background update failures. ( #12781 )
2022-05-18 13:57:59 +00:00
reivilibre
df4963548b
Give a meaningful error message when a client tries to create a room with an invalid alias localpart. ( #12779 )
2022-05-18 11:46:06 +00:00
Andrew Morgan
a167304c8b
Switch the 'Configuration' link in the docs homepage to the config manual ( #12748 )
2022-05-18 11:29:32 +00:00
Andrew Morgan
deca250e3f
Add some documentation around the `rc_invites` option to the config docs ( #12759 )
2022-05-18 12:21:32 +01:00
Brendan Abolivier
d24a1486e5
Fixup changelog
2022-05-18 11:46:05 +01:00
Brendan Abolivier
1aa30f7b3e
1.59.1
2022-05-18 11:41:53 +01:00
David Robertson
c22314c4e8
Discard null-containing strings before updating the user directory ( #12762 )
2022-05-18 11:40:09 +01:00
David Robertson
d4713d3e33
Discard null-containing strings before updating the user directory ( #12762 )
2022-05-18 11:28:14 +01:00
Hubert Chathi
8afb7b55d0
Make handling of federation Authorization header (more) compliant with RFC7230 ( #12774 )
...
The main differences are:
- values with delimiters (such as colons) should be quoted, so always
quote the origin, since it could contain a colon followed by a port
number
- should allow more than one space after "X-Matrix"
- quoted values with backslash-escaped characters should be unescaped
- names should be case insensitive
2022-05-18 11:19:30 +01:00
Adam
37935b5183
Move methods that call add_push_rule to PushRuleStore ( #12772 )
...
Signed-off-by: Adam Roddick <ajroddick@tuta.io>
2022-05-18 09:37:48 +00:00
David Robertson
0d17357fcd
Suggest using docker when testing against postgres ( #12765 )
...
Co-authored-by: Sean Quah <8349537+squahtx@users.noreply.github.com>
2022-05-17 18:05:53 +00:00
Mathieu Velten
182ca78a12
Delete events from federation_inbound_events_staging table on purge ( #12770 )
2022-05-17 17:01:06 +00:00
David Robertson
5331fb5b47
allow `on_invalidate=None` in `@cached` methods ( #12769 )
2022-05-17 16:06:45 +00:00
Dirk Klimpel
6edefef602
Add some type hints to datastore ( #12717 )
2022-05-17 15:29:06 +01:00
Travis Ralston
942c30b16b
Add a new room version for MSC3787's knock+restricted join rule ( #12623 )
2022-05-17 10:41:39 +00:00
Richard van der Hoff
24b590de32
Remove code which updates `application_services_state.last_txn` ( #12680 )
...
This column is unused as of #12209 , so let's stop writing to it.
2022-05-17 11:07:18 +01:00