aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2023-07-20de-MSC-ifying space summaries (MSC2946) (#3134)helm-dendrite-0.13.1Sam Wedgwood
- This PR moves and refactors the [code](https://github.com/matrix-org/dendrite/blob/main/setup/mscs/msc2946/msc2946.go) for [MSC2946](https://github.com/matrix-org/matrix-spec-proposals/pull/2946) ('Space Summaries') to integrate it into the rest of the codebase. - Means space summaries are no longer hidden behind an MSC flag - Solves #3096 Signed-off-by: Sam Wedgwood <sam@wedgwood.dev>
2023-07-19Use pointer when passing the connection manager around (#3152)Till
As otherwise existing connections aren't reused.
2023-07-18Extend context timeout on send_join to allow for joining complex rooms (#3153)devonh
Background federated joins are currently broken since they timeout after 30s. This timeout didn't exist before the refactor. It should still exist but it needs to be extended to allow for the additional time it can take a server to generate the /send_join response when joining a complex room.
2023-07-14Don't HTTP500 if a profile does't existTill Faelligen
2023-07-14Discard "illegal base64 data at input byte 0" errors in the SyncAPITill Faelligen
2023-07-14Avoid panic due to being unable to query the userIDTill Faelligen
2023-07-13Optimise getting local members and membership counts (#3150)Till
The previous version was getting **ALL** membership events (as `ClientEvents`, so going through `NewEventFromTrustedJSONWithID`) for a given room. Now we are querying only locally joined users as `ClientEvents`, which should **significantly** reduce allocations. Take for example a large room with 2k membership events, but only 1 local user - avoiding 1999 `NewEventFromTrustedJSONWithID` calls just to calculate the `roomSize` which we can also query by other means. This is also getting called for every `OutputRoomEvent` in the userAPI. Benchmark with 1 local user and 100 remote users. ``` pkg: github.com/matrix-org/dendrite/userapi/consumers cpu: 12th Gen Intel(R) Core(TM) i5-12500H │ old.txt │ new.txt │ │ sec/op │ sec/op vs base │ LocalRoomMembers-16 375.9µ ± 7% 327.6µ ± 6% -12.85% (p=0.000 n=10) │ old.txt │ new.txt │ │ B/op │ B/op vs base │ LocalRoomMembers-16 79.426Ki ± 0% 8.507Ki ± 0% -89.29% (p=0.000 n=10) │ old.txt │ new.txt │ │ allocs/op │ allocs/op vs base │ LocalRoomMembers-16 1015.0 ± 0% 277.0 ± 0% -72.71% (p=0.000 n=10) ```
2023-07-13Tweaks around `/messages` (#3149)Till
Try to mitigate some issues with `/messages`
2023-07-13Update NATS again [skip ci]Till Faelligen
2023-07-11Add revision to version string (#3147)Till
Since the removal of `build.sh`, we don't include any information about the revision Dendrite was build from. Since go1.18, the revision a binary was build from is automatically included, so we can try to get that instead. This also adds a `dendrite_up` metric showing the current version (`dendrite_up{version="0.13.1+c796f20"} 1`) Closes #2993
2023-07-08Avoid loops by setting end to an empty string if start == end (#3146)Till
2023-07-07Unknown issueTill Faelligen
2023-07-07[NATS] Issue identified and fixed applied, workaround known.Till Faelligen
2023-07-07Fix issues reported by Sentry (#3143)Till
This should fix a few issues reported by Sentry
2023-07-07Add event size checks similar to Synapse (#3140)Till
Companion to https://github.com/matrix-org/gomatrixserverlib/pull/400 This tries to mimic the logic found in Synapse, as dropping events can break rooms (and we may end up in endless loops..)
2023-07-07Set max age for roomserver input stream to avoid excessive interior deletes ↵Neil
(#3145) If old messages build up in the input stream and do not get processed successfully, this can create a significant drift between the stream first sequence and the consumer ack floors, which results in a slow and expensive start-up when interest-based retention is in use. If a message is sat in the stream for 24 hours, it's probably not going to get processed successfully, so let NATS drop them instead. Dendrite can reconcile by fetching missing events later if it needs to. --------- Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
2023-07-07Prepare statement on an existing transaction (#3144)Till
This should fix an issue with the database being locked for SQLite.
2023-07-06Populate syncapi state event prev_sender with userID (#3142)devonh
2023-07-06Fix prev event lookup in syncapi (#3141)devonh
The syncapi operates using userID's so when querying for the previous state event we need to lookup the userID from the given senderID before the state query.
2023-07-06Add pseudoID compatibility to Invites (#3126)devonh
2023-07-06Don't spam the logs - downgrade sentryTill Faelligen
2023-07-06Back to the original version for nowTill Faelligen
2023-07-06[debug] Downgrade NATSTill Faelligen
2023-07-06Increase NATS server startup timeoutTill Faelligen
2023-07-06Version 0.13.1 (#3136)v0.13.1Till
2023-07-05Fix metrics..Till Faelligen
2023-07-04Fix adding state events to the database (#3133)Till
When we're adding state to the database, we check which eventNIDs are already in a block, if we already have that eventNID, we remove it from the list. In its current form we would skip over eventNIDs in the case we already found a match (we're decrementing `i` twice) My theory is, that when we later get the state blocks, we are receiving "too many" eventNIDs (well, yea, we stored too many), which may or may not can result in state resets when comparing different state snapshots. (e.g. when adding state we stored a eventNID by accident because we skipped it, later we add more state and are not adding it because we don't skip it)
2023-06-30Version 0.13.0 (#3127)v0.13.0helm-dendrite-0.13.0Till
2023-06-30Extend Dendrite Helm chart with some additional config options (#3077)helm-dendrite-0.12.4Omar Pakker
This set of changes introduces a few (compatible) changes to the Helm chart: - Allow PVC class to be set on each PVC, not only one-for-all. - Allow Prometheus servicemonitor and rules labels to be empty. - Have the option to generate the ingress (incl. TLS config) based on dendrite_config. * [x] I have added Go unit tests or [Complement integration tests](https://github.com/matrix-org/complement) for this PR _or_ I have justified why this PR doesn't need tests * [x] Pull request includes a [sign off below using a legally identifiable name](https://matrix-org.github.io/dendrite/development/contributing#sign-off) _or_ I have already signed off privately Signed-off-by: Omar Pakker <Omar007@users.noreply.github.com> --------- Signed-off-by: Omar Pakker <Omar007@users.noreply.github.com> Co-authored-by: Till <2353100+S7evinK@users.noreply.github.com>
2023-06-29Actually use the parameterTill Faelligen
2023-06-28Add `MXIDMapping` for pseudoID rooms (#3112)Till
Add `MXIDMapping` on membership events when creating/joining rooms.
2023-06-28Fix setting `displayname` and `avatar_url` (#3125)Till
As per the spec, `displayname` and `avatar_url` may be empty.
2023-06-28Fix syncAPI redactions (#3118)Till
Previously we were setting `redacted_because` to the PDU event, but as per the spec it should really be a client event. This fixes it.
2023-06-22feat: admin APIs for token authenticated registration (#3101)santhoshivan23
### Pull Request Checklist <!-- Please read https://matrix-org.github.io/dendrite/development/contributing before submitting your pull request --> * [x] I have added Go unit tests or [Complement integration tests](https://github.com/matrix-org/complement) for this PR _or_ I have justified why this PR doesn't need tests * [x] Pull request includes a [sign off below using a legally identifiable name](https://matrix-org.github.io/dendrite/development/contributing#sign-off) _or_ I have already signed off privately Signed-off-by: `Santhoshivan Amudhan santhoshivan23@gmail.com`
2023-06-20Fix backfilling (#3117)Till
This should fix two issues with backfilling: 1. right after creating and joining a room over federation, we are doing a `/backfill` request, which would return redacted events, because the `authEvents` are empty. Even though the spec states that, in the absence of a history visibility event, it should be handled as `shared`. 2. `gomatrixserverlib: unsupported room version ''` - because, well, we were never setting the `roomInfo` field..
2023-06-18rearrange order of sections about signing keys and configuring dendrite, fix ↵CicadaCinema
a dead link (#3114) I thought I would rearrange these pages since the configuration step requires that a signing key has been generated. Co-authored-by: kegsay <kegan@matrix.org>
2023-06-15Fix unsafe hotserving behaviour for multimedia uploads. (#3113)Josh Qou
Return multimedia with a disposition type of attachment instead of inline. NVT#1548992 Signed-off-by: Josh Qou [jqou@icloud.com](mailto:jqou@icloud.com) Co-authored-by: Jon <haddock.05.roast@icloud.com>
2023-06-14Fix senderID/key conversion unit testsDevon Hudson
2023-06-14Add missing depDevon Hudson
2023-06-14Fix senderID/key conversionsDevon Hudson
2023-06-14Merge SenderID & Per Room User Key work (#3109)devonh
2023-06-13Add `AssignRoomNID` to pre-assign roomNIDs (#3111)Till
2023-06-13Create user room key if needed (#3108)Till
2023-06-13Add `sender_key` to ClientEvent (#3110)Till
2023-06-12Cleanup remaining statekey usage for senderIDs (#3106)devonh
2023-06-12Add initial support for storing user room keys (#3098)Till
2023-06-12Update sample link (#3107)Antonio Cheong
Leftover work by f956a8c1d9172f6bbfb9f7515feacd477a0e35f5 Signed-off-by: `Antonio Cheong <acheong@student.dalat.org>` [skip ci]
2023-06-07Use SenderID Type (#3105)devonh
2023-06-06PDU Sender split (#3100)devonh
Initial cut of splitting PDU Sender into SenderID & looking up UserID where required.
2023-06-06Make `StrictValidityChecking` a function (#3092)Till
Companion PR to https://github.com/matrix-org/gomatrixserverlib/pull/388