dendrite/clientapi/routing
Neil Alexander a763cbb0e1
Roomserver/federation input refactor (#2104)
* Put federation client functions into their own file

* Look for missing auth events in RS input

* Remove retrieveMissingAuthEvents from federation API

* Logging

* Sorta transplanted the code over

* Use event origin failing all else

* Don't get stuck on mutexes:

* Add verifier

* Don't mark state events with zero snapshot NID as not existing

* Check missing state if not an outlier before storing the event

* Reject instead of soft-fail, don't copy roominfo so much

* Use synchronous contexts, limit time to fetch missing events

* Clean up some commented out bits

* Simplify `/send` endpoint significantly

* Submit async

* Report errors on sending to RS input

* Set max payload in NATS to 16MB

* Tweak metrics

* Add `workerForRoom` for tidiness

* Try skipping unmarshalling errors for RespMissingEvents

* Track missing prev events separately to avoid calculating state when not possible

* Tweak logic around checking missing state

* Care about state when checking missing prev events

* Don't check missing state for create events

* Try that again

* Handle create events better

* Send create room events as new

* Use given event kind when sending auth/state events

* Revert "Use given event kind when sending auth/state events"

This reverts commit 089d64d271b5fca8c104e1554711187420dbebca.

* Only search for missing prev events or state for new events

* Tweaks

* We only have missing prev if we don't supply state

* Room version tweaks

* Allow async inputs again

* Apply backpressure to consumers/synchronous requests to hopefully stop things being overwhelmed

* Set timeouts on roomserver input tasks (need to decide what timeout makes sense)

* Use work queue policy, deliver all on restart

* Reduce chance of duplicates being sent by NATS

* Limit the number of servers we attempt to reduce backpressure

* Some review comment fixes

* Tidy up a couple things

* Don't limit servers, randomise order using map

* Some context refactoring

* Update gmsl

* Don't resend create events

* Set stateIDs length correctly or else the roomserver thinks there are missing events when there aren't

* Exclude our own servername

* Try backing off servers

* Make excluding self behaviour optional

* Exclude self from g_m_e

* Update sytest-whitelist

* Update consumers for the roomserver output stream

* Remember to send outliers for state returned from /gme

* Make full HTTP tests less upsetti

* Remove 'If a device list update goes missing, the server resyncs on the next one' from the sytest blacklist

* Remove debugging test

* Fix blacklist again, remove unnecessary duplicate context

* Clearer contexts, don't use background in case there's something happening there

* Don't queue up events more than once in memory

* Correctly identify create events when checking for state

* Fill in gaps again in /gme code

* Remove `AuthEventIDs` from `InputRoomEvent`

* Remove stray field

Co-authored-by: Kegan Dougal <kegan@matrix.org>
2022-01-27 14:29:14 +00:00
..
account_data.go Use NotFound instead of Forbidden for missing account data (#1872) 2021-06-14 14:06:14 +01:00
admin_whois.go Implemented whois endpoint (#1573) 2020-11-17 10:07:03 +00:00
aliases.go Various alias fixes (#1934) 2021-07-21 16:53:50 +01:00
auth_fallback.go Top-level setup package (#1605) 2020-12-02 17:41:00 +00:00
capabilities.go Finish implementing the capabilities endpoint (#1449) 2020-09-29 10:06:59 +01:00
createroom.go Roomserver/federation input refactor (#2104) 2022-01-27 14:29:14 +00:00
deactivate.go Read the right username field when performing account deactivation (#1954) 2021-08-02 13:11:23 +01:00
device.go - Removed double imports (#1989) 2021-09-08 17:31:03 +01:00
directory_public_test.go Implement ExtraPublicRoomsProvider for p2p demos (#1180) 2020-07-03 12:59:00 +01:00
directory_public.go Top-level setup package (#1605) 2020-12-02 17:41:00 +00:00
directory.go Merge federationapi, federationsender, signingkeyserver components (#2055) 2021-11-24 10:45:23 +00:00
getevent.go Send events to appservice based on room membership (#1680) 2021-03-03 16:27:44 +00:00
joinroom.go Return 200 on join before time out (#1493) 2020-10-07 15:29:14 +01:00
key_backup.go Add missing HTTP mode for userapi (#1982) 2021-12-03 17:18:35 +00:00
key_crosssigning.go Hopefully fix UIA for cross-signing setup (closes #1983) (#1986) 2021-08-24 11:44:03 +01:00
keys.go Cross-signing groundwork (#1953) 2021-08-04 17:56:29 +01:00
leaveroom.go Make userapi responsible for checking access tokens (#1133) 2020-06-16 14:10:55 +01:00
login.go Top-level setup package (#1605) 2020-12-02 17:41:00 +00:00
logout.go - Removed double imports (#1989) 2021-09-08 17:31:03 +01:00
membership.go Roomserver/federation input refactor (#2104) 2022-01-27 14:29:14 +00:00
memberships.go Don't send null in joined_rooms response (#1659) 2020-12-18 13:33:08 +00:00
openid.go Implement OpenID module (#599) (#1812) 2021-04-07 13:26:20 +01:00
password.go - Removed double imports (#1989) 2021-09-08 17:31:03 +01:00
peekroom.go Peeking updates (#1607) 2020-12-03 11:11:46 +00:00
profile.go Roomserver/federation input refactor (#2104) 2022-01-27 14:29:14 +00:00
receipt.go Implement read receipts (#1528) 2020-11-09 18:46:11 +00:00
redaction.go Roomserver/federation input refactor (#2104) 2022-01-27 14:29:14 +00:00
register_secret_test.go Implement /_synapse/admin/v1/register (#1911) 2021-07-09 16:52:31 +01:00
register_secret.go - Removed double imports (#1989) 2021-09-08 17:31:03 +01:00
register_test.go Don't populate config defaults where it doesn't make sense (#2058) 2021-11-24 11:57:39 +00:00
register.go Implement /_synapse/admin/v1/register (#1911) 2021-07-09 16:52:31 +01:00
room_tagging.go Refactor account data (#1150) 2020-06-18 18:36:03 +01:00
routing.go Ratelimit requests to /media/r0/download|upload (#2020) 2021-11-24 12:55:44 +00:00
sendevent.go Roomserver/federation input refactor (#2104) 2022-01-27 14:29:14 +00:00
sendtodevice.go Make userapi responsible for checking access tokens (#1133) 2020-06-16 14:10:55 +01:00
sendtyping.go Remove QueryCurrentState from current-state-server (#1395) 2020-09-04 12:30:56 +01:00
state.go Increase gocyclo complexity to 25 (and remove all but 2 golint directives related to it) (#1783) 2021-03-03 14:35:57 +00:00
threepid.go Top-level setup package (#1605) 2020-12-02 17:41:00 +00:00
userdirectory.go Remove QueryKnownUsers from current state server (#1393) 2020-09-04 11:46:01 +01:00
voip.go Top-level setup package (#1605) 2020-12-02 17:41:00 +00:00
whoami.go Make userapi responsible for checking access tokens (#1133) 2020-06-16 14:10:55 +01:00