dendrite/roomserver/storage/sqlite3
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 089d64d271.

* 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
..
deltas Fix sqlite migration issues (#1960) 2021-08-04 17:08:17 +01:00
event_json_table.go Factor out StatementList to sqlutil and use it in userapi 2021-07-28 18:30:04 +01:00
event_state_keys_table.go Factor out StatementList to sqlutil and use it in userapi 2021-07-28 18:30:04 +01:00
event_types_table.go Factor out StatementList to sqlutil and use it in userapi 2021-07-28 18:30:04 +01:00
events_table.go Roomserver/federation input refactor (#2104) 2022-01-27 14:29:14 +00:00
invite_table.go Factor out StatementList to sqlutil and use it in userapi 2021-07-28 18:30:04 +01:00
membership_table.go Factor out StatementList to sqlutil and use it in userapi 2021-07-28 18:30:04 +01:00
previous_events_table.go Factor out StatementList to sqlutil and use it in userapi 2021-07-28 18:30:04 +01:00
published_table.go Factor out StatementList to sqlutil and use it in userapi 2021-07-28 18:30:04 +01:00
redactions_table.go Factor out StatementList to sqlutil and use it in userapi 2021-07-28 18:30:04 +01:00
room_aliases_table.go Factor out StatementList to sqlutil and use it in userapi 2021-07-28 18:30:04 +01:00
rooms_table.go Only return non-stub rooms from GetKnownRooms (#2049) 2021-11-18 11:34:19 +00:00
state_block_table.go Fix sqlite migration issues (#1960) 2021-08-04 17:08:17 +01:00
state_block_table_test.go Support sqlite in addition to postgres (#869) 2020-02-13 17:27:33 +00:00
state_snapshot_table.go Fix sqlite migration issues (#1960) 2021-08-04 17:08:17 +01:00
storage.go Don't persist transaction IDs in the roomserver (#2048) 2021-11-22 09:13:12 +00:00