summary refs log tree commit diff
path: root/synapse/util/retryutils.py (unfollow)
Commit message (Collapse)AuthorFilesLines
2021-07-22Always send device_one_time_keys_count (#10457)David Baker2-4/+8
As per comment Fixes https://github.com/matrix-org/synapse/issues/10456 See also https://github.com/vector-im/element-android/issues/3725
2021-07-13Move upgrade blurb v1.38.0Richard van der Hoff1-2/+2
2021-07-13Update CHANGES.mdRichard van der Hoff1-1/+1
2021-07-13fix debian changelogRichard van der Hoff1-1/+7
2021-07-13 1.38.0Richard van der Hoff3-2/+8
2021-07-131.38.0rc3 v1.38.0rc3Richard van der Hoff5-5/+16
2021-07-13Github Actions workflow to attach release artifacts to release (#10379)Richard van der Hoff2-1/+28
2021-07-13Build the python release artifacts in GHA tooRichard van der Hoff1-3/+23
2021-07-12build debs in GHA (#10247)Richard van der Hoff3-4/+58
GHA workflow to build the debs
2021-07-09Fix README rstErik Johnston1-5/+4
2021-07-09Fix README rstErik Johnston1-4/+5
2021-07-09Fixup changelog v1.38.0rc2Erik Johnston1-1/+1
2021-07-09Fixup changelogErik Johnston1-1/+1
2021-07-09 1.38.0rc2Erik Johnston5-4/+17
2021-07-09Ensure we always drop the federation inbound lock (#10336)Erik Johnston3-2/+15
2021-07-08Fix broken links in INSTALL.md (#10331)Dirk Klimpel13-617/+629
Signed-off-by: Dirk Klimpel dirk@klimpel.org
2021-07-07Update links to documentation in sample config (#10287)Dirk Klimpel16-46/+51
Signed-off-by: Dirk Klimpel dirk@klimpel.org
2021-07-07Fix broken link v1.38.0rc1Brendan Abolivier1-1/+1
2021-07-07Merge latest fix into the changelogBrendan Abolivier2-2/+1
2021-07-07ANALYZE new stream ordering column (#10326)Brendan Abolivier2-0/+11
Fixes #10325
2021-07-07build the docs for master (#10323)Richard van der Hoff1-31/+28
2021-07-06Small changelog tweaksBrendan Abolivier1-6/+4
2021-07-06 1.38.0rc1Brendan Abolivier34-33/+50
2021-07-06Fix deactivate a user if he does not have a profile (#10252)Dirk Klimpel3-22/+73
2021-07-06Add script for getting info about recently registered users (#10290)Erik Johnston17-153/+309
2021-07-06Handle old staged inbound events (#10303)Erik Johnston3-10/+67
We might have events in the staging area if the service was restarted while there were unhandled events in the staging area. Fixes #10295
2021-07-06Add upgrade notes about disk space for events migration (#10314)Richard van der Hoff3-1/+44
2021-07-05Add support for evicting cache entries based on last access time. (#10205)Erik Johnston9-95/+485
2021-07-02Fix bad link in modules documentation (#10302)Brendan Abolivier2-1/+2
Fix link in modules doc to point at instructions on registering a callback instead of ones on registering a web resource.
2021-07-01Move methods involving event authentication to EventAuthHandler. (#10268)Patrick Cloke11-106/+112
Instead of mixing them with user authentication methods.
2021-07-01fix ordering of bg update (#10291)Richard van der Hoff2-1/+2
this was a typo introduced in #10282. We don't want to end up doing the `replace_stream_ordering_column` update after anything that comes up in migration 60/03.
2021-07-01Reenable 'Backfilled events whose prev_events...' sytest (#10292)Erik Johnston2-1/+1
Now that we've fixed it.
2021-07-01Add SSO `external_ids` to Query User Account admin API (#10261)Dirk Klimpel4-85/+159
Related to #10251
2021-07-01Add some metrics to staging area (#10284)Erik Johnston2-0/+40
2021-06-30Fix the homeserver config example in presence router docs (#10288)Andrew Morgan2-1/+4
The presence router docs include some sample homeserver config. At some point we changed the name of the [config option](https://github.com/matrix-org/synapse/blob/859dc05b3692a3672c1a0db8deaaa9274b6aa6f5/docs/sample_config.yaml#L104-L113), but forgot to update the docs. I've also added `presence.enabled: true` to the example, as that's the new way to enable presence (the `presence_enabled` option has been deprecated).
2021-06-30Change more stream_ordering columns to BIGINT (#10286)Richard van der Hoff2-0/+31
2021-06-30Rebuild other indexes using `stream_ordering` (#10282)Richard van der Hoff3-6/+56
We need to rebuild *all* of the indexes that use the current `stream_ordering` column.
2021-06-30Fixup changelog v1.37.1Erik Johnston1-1/+1
2021-06-30Add note to changelogErik Johnston1-1/+3
2021-06-30 1.37.1Erik Johnston3-1/+13
2021-06-30Correct type hints for synapse.event_auth. (#10253)Patrick Cloke6-38/+51
2021-06-30Fix the inbound PDU metric (#10279)Erik Johnston6-27/+93
This broke in #10272
2021-06-291.37.1rc1 v1.37.1rc1Richard van der Hoff4-3/+10
2021-06-29Update newsfiles v1.37.1a1Richard van der Hoff2-1/+1
2021-06-29v1.37.1a1Richard van der Hoff1-1/+1
2021-06-29Handle inbound events from federation asynchronously (#10272)Erik Johnston5-5/+241
Fixes #9490 This will break a couple of SyTest that are expecting failures to be added to the response of a federation /send, which obviously doesn't happen now that things are asynchronous. Two drawbacks: Currently there is no logic to handle any events left in the staging area after restart, and so they'll only be handled on the next incoming event in that room. That can be fixed separately. We now only process one event per room at a time. This can be fixed up further down the line.
2021-06-29Add a distributed lock (#10269)Erik Johnston6-0/+476
This adds a simple best effort locking mechanism that works cross workers.
2021-06-29Do not recurse into non-spaces in the spaces summary. (#10256)Patrick Cloke5-26/+43
Previously m.child.room events in non-space rooms would be treated as part of the room graph, but this is no longer supported.
2021-06-29Fix `populate_stream_ordering2` background job (#10267)Richard van der Hoff2-16/+13
It was possible for us not to find any rows in a batch, and hence conclude that we had finished. Let's not do that.
2021-06-29Migrate stream_ordering to a bigint (#10264)Richard van der Hoff4-16/+163
* Move background update names out to a separate class `EventsBackgroundUpdatesStore` gets inherited and we don't really want to further pollute the namespace. * Migrate stream_ordering to a bigint * changelog
2021-06-29Soft-fail spammy events received over federation (#10263)Richard van der Hoff2-6/+7
2021-06-29Move deprecation notices to the top of the changelog v1.37.0Brendan Abolivier1-6/+2
2021-06-29 1.37.0Brendan Abolivier3-1/+13
2021-06-28Add additional types to the federation transport server. (#10213)Patrick Cloke3-118/+521
2021-06-28Adjust the URL in the README.rst file to point to LiberaChat instead of ↵Felix Kronlage-Dammers2-1/+2
freenode (#10258)
2021-06-24Create an index.html file when generating a docs build (#10242)Andrew Morgan2-1/+7
Currently when a new build of the docs is created, an `index.html` file does not exist. Typically this would be generated from a`docs/README.md` file - which we have - however we're currently using [docs/README.md](https://github.com/matrix-org/synapse/blob/394673055db4df49bfd58c2f6118834a6d928563/docs/README.md) to explain the docs and point to the website. It is not part of the content of the website. So we end up not having an `index.html` file, which will result in a 404 page if one tries to navigate to `https://matrix-org.github.io/synapse/<docs_version>/index.html`. This isn't a really problem for the default version of the documentation (currently `develop`), as [navigating to the top-level root](https://matrix-org.github.io/synapse/) of the website (without specifying a version) will [redirect](https://github.com/matrix-org/synapse/blob/a77e6925f26597958eccf0ef9956cb13c536e57e/index.html#L2) you to the Welcome and Overview page of the `develop` docs version. However, ideally once we add a GUI for switching between versions, we'll want to send the user to `matrix-org.github.io/synapse/<version>/index.html`, which currently isn't generated. This PR modifies the CI that builds the docs to simply copy the rendered [Welcome & Overview page](https://matrix-org.github.io/synapse/develop/welcome_and_overview.html) to `index.html`.
2021-06-24Return errors from `send_join` etc if the event is rejected (#10243)Richard van der Hoff3-10/+41
Rather than persisting rejected events via `send_join` and friends, raise a 403 if someone tries to pull a fast one.
2021-06-24Improve validation for `send_{join,leave,knock}` (#10225)Richard van der Hoff6-183/+132
The idea here is to stop people sending things that aren't joins/leaves/knocks through these endpoints: previously you could send anything you liked through them. I wasn't able to find any security holes from doing so, but it doesn't sound like a good thing.
2021-06-24MSC2918 Refresh tokens implementation (#9450)Quentin Gliech15-61/+892
This implements refresh tokens, as defined by MSC2918 This MSC has been implemented client side in Hydrogen Web: vector-im/hydrogen-web#235 The basics of the MSC works: requesting refresh tokens on login, having the access tokens expire, and using the refresh token to get a new one. Signed-off-by: Quentin Gliech <quentingliech@gmail.com>
2021-06-24Incorportate review comments v1.37.0rc1Brendan Abolivier1-3/+3
2021-06-24Fix date in changelogBrendan Abolivier1-1/+1
2021-06-24Tweak changelogBrendan Abolivier2-15/+19
2021-06-23Convert UPGRADE.rst to markdown (#10166)Andrew Morgan8-1365/+1381
This PR: * Converts UPGRADE.rst to markdown and moves the contents into the `docs/` directory. * Updates the contents of UPGRADE.rst to point to the website instead. * Updates links around the codebase that point to UPGRADE.rst. `pandoc` + some manual editing was used to convert from RST to md.
2021-06-23Fixes to the release script (#10239)Brendan Abolivier2-25/+28
* rename major/minor into the right semver terminology minor/patch (since this was something that got me very confused the first couple of times I've used the script) * name the release branch based on the new version, not the previous one
2021-06-23Fix wrapping of legacy check_registration_for_spam (#10238)Brendan Abolivier3-6/+84
Fixes #10234
2021-06-23Re-introduce "Leave out optional keys from /sync" change (#10214)Andrew Morgan4-55/+53
Required some fixes due to merge conflicts with #6739, but nothing too hairy. The first commit is the same as the original (after merge conflict resolution) then two more for compatibility with the latest sync code.
2021-06-23Improve the reliability of auto-joining remote rooms (#10237)Brendan Abolivier3-17/+96
If a room is remote and we don't have a user in it, always try to join it. It might fail if the room is invite-only, but we don't have a user to invite with, so at this point it's the best we can do. Fixes #10233 (at least to some extent)
2021-06-23Send out invite rejections and knocks over federation (#10223)Richard van der Hoff3-1/+16
ensure that events sent via `send_leave` and `send_knock` are sent on to the rest of the federation.
2021-06-23Drop Origin & Accept from Access-Control-Allow-Headers value (#10114)Michael[tm] Smith2-1/+2
* Drop Origin & Accept from Access-Control-Allow-Headers value This change drops the Origin and Accept header names from the value of the Access-Control-Allow-Headers response header sent by Synapse. Per the CORS protocol, it’s not necessary or useful to include those header names. Details: Per-spec at https://fetch.spec.whatwg.org/#forbidden-header-name, Origin is a “forbidden header name” set by the browser and that frontend JavaScript code is never allowed to set. So the value of Access-Control-Allow-Headers isn’t relevant to Origin or in general to other headers set by the browser itself — the browser never ever consults the Access-Control-Allow-Headers value to confirm that it’s OK for the request to include an Origin header. And per-spec at https://fetch.spec.whatwg.org/#cors-safelisted-request-header, Accept is a “CORS-safelisted request-header”, which means that browsers allow requests to contain the Accept header regardless of whether the Access-Control-Allow-Headers value contains "Accept". So it’s unnecessary for the Access-Control-Allow-Headers to explicitly include Accept. Browsers will not perform a CORS preflight for requests containing an Accept request header. Related: https://github.com/matrix-org/matrix-doc/pull/3225 Signed-off-by: Michael[tm] Smith <mike@w3.org>
2021-06-23 1.37.0rc1Brendan Abolivier48-47/+67
2021-06-22Fix schema delta to not take as long on large servers (#10227)Erik Johnston2-2/+6
Introduced in #6739
2021-06-22Warn users trying to use the deprecated spam checker interface (#10210)Brendan Abolivier2-0/+16
So admins aren't surprised if things break when we remove this code in a couple of months.
2021-06-22Add endpoints for backfilling history (MSC2716) (#9247)Eric Eastwood14-23/+584
Work on https://github.com/matrix-org/matrix-doc/pull/2716
2021-06-21Implement config option `sso.update_profile_information` (#10108)jkanefendt4-1/+51
Implemented config option sso.update_profile_information to keep user's display name in sync with the SSO displayname. Signed-off-by: Johannes Kanefendt <johannes.kanefendt@krzn.de>
2021-06-21Fix performance of responding to user key requests over federation (#10221)Erik Johnston3-1/+11
We were repeatedly looking up a config option in a loop (using the unclassed config style), which is expensive enough that it can cause large CPU usage.
2021-06-21Check third party rules before persisting knocks over federation (#10212)Andrew Morgan2-2/+3
An accidental mis-ordering of operations during #6739 technically allowed an incoming knock event over federation in before checking it against any configured Third Party Access Rules modules. This PR corrects that by performing the TPAR check *before* persisting the event.
2021-06-21Ensure that errors during startup are written to the logs and the console. ↵Richard van der Hoff5-16/+55
(#10191) * Defer stdio redirection until we are about to start the reactor * Catch and handle exceptions during startup
2021-06-18Deploy a documentation version for each new Synapse release (#10198)Andrew Morgan2-0/+34
This PR will run a new "Deploy release-specific documentation" job whenever a push to a branch name matching `release-v*` occurs. Doing so will create/add to a folder named `vX.Y` on the `gh-pages` branch. Doing so will allow us to build up `major.minor` releases of the docs as we release Synapse. This is especially useful for having a mechanism for keeping around documentation of old/removed features (for those running older versions of Synapse), without needing to clutter the latest copy of the docs. After a [discussion](https://matrix.to/#/!XaqDhxuTIlvldquJaV:matrix.org/$rKmkBmQle8OwTlGcoyu0BkcWXdnHW3_oap8BMgclwIY?via=matrix.org&via=vector.modular.im&via=envs.net) in #synapse-dev, we wanted to use tags to trigger the documentation deployments, which I agreed with. However, I soon realised that the bash-foo required to turn a tag of `v1.2.3rc1` into `1.2` was a lot more complex than the branch's `release-v1.2`. So, I've gone with the latter for simplicity. In the future we'll have some UI on the website to switch between versions, but for now you can simply just change 'develop' to 'v1.2' in the URL.
2021-06-18Fix a missing await when in the spaces summary. (#10208)Patrick Cloke3-3/+100
This could cause a minor data leak if someone defined a non-restricted join rule with an allow key or used a restricted join rule in an older room version, but this is unlikely. Additionally this starts adding unit tests to the spaces summary handler.
2021-06-18Describe callbacks signatures as async in new modules doc (#10206)Brendan Abolivier2-8/+9
2021-06-18Standardise the module interface (#10062)Brendan Abolivier23-188/+769
This PR adds a common configuration section for all modules (see docs). These modules are then loaded at startup by the homeserver. Modules register their hooks and web resources using the new `register_[...]_callbacks` and `register_web_resource` methods of the module API.
2021-06-18Expose opentracing trace id in response headers (#10199)Richard van der Hoff3-0/+25
Fixes: #9480
2021-06-17Remove support for ACME v1 (#10194)Brendan Abolivier18-836/+18
Fixes #9778 ACME v1 has been fully decommissioned for existing installs on June 1st 2021(see https://community.letsencrypt.org/t/end-of-life-plan-for-acmev1/88430/27), so we can now safely remove it from Synapse.
2021-06-17Update MSC3083 support per changes in the MSC. (#10189)Patrick Cloke4-31/+47
Adds a "type" field and generalize "space" to "room_id".
2021-06-17Ensure that we do not cache empty sync responses after a timeout (#10158)Richard van der Hoff8-21/+84
Fixes #8518 by telling the ResponseCache not to cache the /sync response if the next_batch param is the same as the since token.
2021-06-17Rip out the DNS lookup limiter (#10190)Richard van der Hoff2-104/+1
As I've written in various places in the past (#7113, #9865) I'm pretty sure this is doing nothing useful at all.
2021-06-17update black to 21.6b0 (#10197)Marcus17-27/+28
Reformat all files with the new version. Signed-off-by: Marcus Hoffmann <bubu@bubu1.eu>
2021-06-17Fix incorrect time magnitude on delayed call (#10195)Andrew Morgan2-1/+2
Fixes https://github.com/matrix-org/synapse/issues/10030. We were expecting milliseconds where we should have provided a value in seconds. The impact of this bug isn't too bad. The code is intended to count the number of remote servers that the homeserver can see and report that as a metric. This metric is supposed to run initially 1 second after server startup, and every 60s as well. Instead, it ran 1,000 seconds after server startup, and every 60s after startup. This fix allows for the correct metrics to be collected immediately, as well as preventing a random collection 1,000s in the future after startup.
2021-06-17Add fields to better debug where events are being soft_failed (#10168)Eric Eastwood2-3/+19
Follow-up to https://github.com/matrix-org/synapse/pull/10156#discussion_r650292223
2021-06-17Fix persist_events to stop leaking opentracing contexts (#10193)Richard van der Hoff2-1/+2
2021-06-16Improve comments in the structured logging code. (#10188)Patrick Cloke2-4/+6
2021-06-16Always require users to re-authenticate for dangerous operations. (#10184)Patrick Cloke6-1/+24
Dangerous actions means deactivating an account, modifying an account password, or adding a 3PID. Other actions (deleting devices, uploading keys) can re-use the same UI auth session if ui_auth.session_timeout is configured.
2021-06-16A guide to the request log lines format. (#8436)Michael Kaye3-0/+46
This doc is short but a useful guide to what the request log lines mean. Co-authored-by: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> Co-authored-by: Erik Johnston <erik@matrix.org> Co-authored-by: Daniele Sluijters <daenney@users.noreply.github.com>
2021-06-16Add debug logging when we enter/exit Measure block (#10183)Erik Johnston2-0/+6
It can be helpful to know when trying to track down slow requests.
2021-06-16Fix requestOpenIdToken response: integer expires_in (#10175)Lukas Lihotzki2-1/+2
`expires_in` must be an integer according to the OpenAPI spec: https://github.com/matrix-org/matrix-doc/blob/master/data/api/client-server/definitions/openid_token.yaml#L32 True division (`/`) returns a float instead (`"expires_in": 3600.0`). Floor division (`//`) returns an integer, so the response is spec compliant. Signed-off-by: Lukas Lihotzki <lukas@lihotzki.de>
2021-06-16Fix broken links in documentation (#10180)Dirk Klimpel19-51/+53
* Fix broken links in documentation * newsfile
2021-06-16Make opentracing trace into event persistence (#10134)Richard van der Hoff4-9/+99
* Trace event persistence When we persist a batch of events, set the parent opentracing span to the that from the request, so that we can trace all the way in. * changelog * When we force tracing, set a baggage item ... so that we can check again later. * Link in both directions between persist_events spans
2021-06-15 1.36.0 v1.36.0 github/release-v1.36 release-v1.36Erik Johnston3-1/+13
2021-06-15Remove support for unstable MSC1772 prefixes. (#10161)Patrick Cloke3-16/+4
The stable prefixes have been supported since v1.34.0. The unstable prefixes are not supported by any known clients.
2021-06-15Remove the experimental flag for knocking and use stable prefixes / ↵Patrick Cloke13-96/+33
endpoints. (#10167) * Room version 7 for knocking. * Stable prefixes and endpoints (both client and federation) for knocking. * Removes the experimental configuration flag.
2021-06-15Fix 'ip_range_whitelist' not working for federation servers (#10115)Michael Kutzner3-13/+19
Add 'federation_ip_range_whitelist'. This allows backwards-compatibility, If 'federation_ip_range_blacklist' is set. Otherwise 'ip_range_whitelist' will be used for federation servers. Signed-off-by: Michael Kutzner 1mikure@gmail.com
2021-06-14Refactor `EventPersistenceQueue` (#10145)Richard van der Hoff2-77/+89
some cleanup, pulled out of #10134.
2021-06-14Extend `ResponseCache` to pass a context object into the callback (#10157)Richard van der Hoff5-37/+146
This is the first of two PRs which seek to address #8518. This first PR lays the groundwork by extending ResponseCache; a second PR (#10158) will update the SyncHandler to actually use it, and fix the bug. The idea here is that we allow the callback given to ResponseCache.wrap to decide whether its result should be cached or not. We do that by (optionally) passing a ResponseCacheContext into it, which it can modify.
2021-06-11Notes on boolean columns in database schemas (#10164)Richard van der Hoff2-0/+43
2021-06-11Fixup changelog v1.36.0rc2Erik Johnston1-1/+1
2021-06-11 1.36.0rc2Erik Johnston5-4/+12
2021-06-11Only send a presence state to a destination once (#10165)Erik Johnston2-13/+13
It turns out that we were sending the same presence state to a remote potentially multiple times.
2021-06-11Fix sending presence over federation when using workers (#10163)Erik Johnston2-6/+20
When using a federation sender we'd send out all local presence updates over federation even when they shouldn't be. Fixes #10153.
2021-06-11Fix bug when running presence off master (#10149)Erik Johnston3-1/+17
Hopefully fixes #10027.
2021-06-11Only send a presence state to a destination once (#10165)Erik Johnston2-13/+13
It turns out that we were sending the same presence state to a remote potentially multiple times.
2021-06-11Support for database schema version ranges (#9933)Richard van der Hoff7-77/+206
This is essentially an implementation of the proposal made at https://hackmd.io/@richvdh/BJYXQMQHO, though the details have ended up looking slightly different.
2021-06-11Use the matching complement branch when running tests in CI. (#10160)Patrick Cloke2-5/+24
This implements similar behavior to sytest where a matching branch is used, if one exists. This is useful when needing to modify both application code and tests at the same time. The following rules are used to find a matching complement branch: 1. Search for the branch name of the pull request. (E.g. feature/foo.) 2. Search for the base branch of the pull request. (E.g. develop or release-vX.Y.) 3. Search for the reference branch of the commit. (E.g. master or release-vX.Y.) 4. Fallback to 'master', the default complement branch name.
2021-06-11Fix sending presence over federation when using workers (#10163)Erik Johnston2-6/+20
When using a federation sender we'd send out all local presence updates over federation even when they shouldn't be. Fixes #10153.
2021-06-11Clean up a broken import in admin_cmd.py (#10154)Andrew Morgan2-2/+1
2021-06-11Fix bug when running presence off master (#10149)Erik Johnston3-1/+17
Hopefully fixes #10027.
2021-06-11Add metrics to track how often events are `soft_failed` (#10156)Eric Eastwood2-0/+8
Spawned from missing messages we were seeing on `matrix.org` from a federated Gtiter bridged room, https://gitlab.com/gitterHQ/webapp/-/issues/2770. The underlying issue in Synapse is tracked by https://github.com/matrix-org/synapse/issues/10066 where the message and join event race and the message is `soft_failed` before the `join` event reaches the remote federated server. Less soft_failed events = better and usually this should only trigger for events where people are doing bad things and trying to fuzz and fake everything.
2021-06-11Document how to see logger output when running the twisted tests (#10148)Eric Eastwood3-13/+26
2021-06-10Mention that you need to configure max upload size in reverse proxy as well ↵Aaron Raimist3-0/+9
(#10122) Signed-off-by: Aaron Raimist <aaron@raim.ist>
2021-06-09Update Complement run with Synapse-supported MSC-related build tags (#10155)Andrew Morgan2-1/+2
This PR updates the build tags that we perform Complement runs with to match our [buildkite pipeline](https://github.com/matrix-org/pipelines/blob/618b3e90bcae8efd1a71502ae95b7913e6e24665/synapse/pipeline.yml#L570), as well as adding `msc2403` (as it will be required once #9359 is merged). Build tags are what we use to determine which tests to run in Complement (really it determines which test files are compiled into the final binary). I haven't put in a comment about updating the buildkite side here, as we've decided to migrate fully to GitHub Actions anyhow.
2021-06-09Integrate knock rooms with the public rooms directory (#9359)Andrew Morgan3-5/+11
This PR implements the ["Changes regarding the Public Rooms Directory"](https://github.com/Sorunome/matrix-doc/blob/soru/knock/proposals/2403-knock.md#changes-regarding-the-public-rooms-directory) section of knocking MSC2403. Specifically, it: * Allows rooms with `join_rule` "knock" to be returned by the query behind the public rooms directory * Adds the field `join_rule` to each room entry returned by a public rooms directory query, so clients can know whether to attempt a join or knock on a room Based on https://github.com/matrix-org/synapse/issues/6739. Complement tests for this change: https://github.com/matrix-org/complement/pull/72
2021-06-09Implement knock feature (#6739)Sorunome29-118/+1613
This PR aims to implement the knock feature as proposed in https://github.com/matrix-org/matrix-doc/pull/2403 Signed-off-by: Sorunome mail@sorunome.de Signed-off-by: Andrew Morgan andrewm@element.io
2021-06-09Limit the number of in-flight /keys/query requests from a single device. ↵Patrick Cloke4-173/+196
(#10144)
2021-06-09Clean up the interface for injecting opentracing over HTTP (#10143)Richard van der Hoff4-92/+26
* Remove unused helper functions * Clean up the interface for injecting opentracing over HTTP * changelog
2021-06-08Add type hints to the federation server transport. (#10080)Patrick Cloke5-75/+194
2021-06-08Make changelog lines consistent v1.36.0rc1Andrew Morgan1-1/+1
2021-06-08fix typo in changelogAndrew Morgan1-1/+1
2021-06-081.36.0rc1Andrew Morgan46-45/+69
2021-06-08Fix logging context when opening new DB connection (#10141)Erik Johnston2-3/+10
Fixes #10140
2021-06-08Correct type hints for parse_string(s)_from_args. (#10137)Patrick Cloke8-83/+132
2021-06-08Name release branches just after major.minor (#10013)Dan Callahan3-5/+6
With the prior format, 1.33.0 / 1.33.1 / 1.33.2 got separate branches: release-v1.33.0 release-v1.33.1 release-v1.33.2 Under the new model, all three would share a common branch: release-v1.33 As before, RCs and actual releases exist as tags on these branches. This better reflects our support model, e.g., that the "1.33" series had a formal release followed by two patches / updates. Signed-off-by: Dan Callahan <danc@element.io>
2021-06-08When joining a remote room limit the number of events we concurrently check ↵Erik Johnston5-256/+202
signatures/hashes for (#10117) If we do hundreds of thousands at once the memory overhead can easily reach 500+ MB.
2021-06-08Handle /backfill returning no events (#10133)Erik Johnston2-13/+26
Fixes #10123
2021-06-07More database opentracing (#10136)Richard van der Hoff2-2/+6
Add a couple of extra logs/spans, to give a bit of a better idea.
2021-06-07opentracing: use a consistent name for background processes (#10135)Richard van der Hoff3-2/+5
... otherwise we tend to get a namespace clash between the bg process and the functions that it calls.
2021-06-07Make link in docs use HTTPS (#10130)Rohan Sharma2-1/+2
Fixes #10121 Signed-off-by: Rohan Sharma <rhnsharma5113@gmail.com>
2021-06-07Fix broken link to README at root of repo (#10132)Chris Castle2-1/+2
Signed-off-by: Chris Castle chris@crc.io
2021-06-07Always update AS last_pos, even on no events (#10107)14mRh4X0r3-17/+15
Fixes #1834. `get_new_events_for_appservice` internally calls `get_events_as_list`, which will filter out any rejected events. If all returned events are filtered out, `_notify_interested_services` will return without updating the last handled stream position. If there are 100 consecutive such events, processing will halt altogether. Breaking the loop is now done by checking whether we're up-to-date with `current_max` in the loop condition, instead of relying on an empty `events` list. Signed-off-by: Willem Mulder <14mRh4X0r@gmail.com>
2021-06-07Add missing type hints to the admin API servlets (#10105)Dirk Klimpel6-40/+48
2021-06-07Delete completes to-device messages earlier in /sync (#10124)Richard van der Hoff2-10/+12
I hope this will improve https://github.com/matrix-org/synapse/issues/9564.
2021-06-04Don't try and backfill the same room in parallel. (#10116)Erik Johnston2-0/+9
If backfilling is slow then the client may time out and retry, causing Synapse to start a new `/backfill` before the existing backfill has finished, duplicating work.
2021-06-04Limit number of events in a replication request (#10118)Erik Johnston2-2/+4
Fixes #9956.
2021-06-04Enable Prometheus metrics for the jaeger client library (#10112)Richard van der Hoff3-1/+5
2021-06-03Compile and render Synapse's docs into a browsable, mobile-friendly and ↵Andrew Morgan35-54/+978
searchable website (#10086)
2021-06-03Add OpenTracing for database activity. (#10113)Richard van der Hoff3-33/+60
This adds quite a lot of OpenTracing decoration for database activity. Specifically it adds tracing at four different levels: * emit a span for each "interaction" - ie, the top level database function that we tend to call "transaction", but isn't really, because it can end up as multiple transactions. * emit a span while we hold a database connection open * emit a span for each database transaction - actual actual transaction. * emit a span for each database query. I'm aware this might be quite a lot of overhead, but even just running it on a local Synapse it looks really interesting, and I hope the overhead can be offset just by turning down the sampling frequency and finding other ways of tracing requests of interest (eg, the `force_tracing_for_users` setting).
2021-06-03Improve opentracing annotations for Notifier (#10111)Richard van der Hoff2-33/+34
The existing tracing reports an error each time there is a timeout, which isn't really representative. Additionally, we log things about the way `wait_for_events` works (eg, the result of the callback) to the *parent* span, which is confusing.
2021-06-03Convert admin api docs to markdown (#10089)Andrew Morgan9-1132/+1160
So that they render nicely in mdbook (see #10086), and so that we no longer have a mix of structured text languages in our documentation (excluding files outside of `docs/`).
2021-06-03r0.6.1 support: /rooms/:roomId/aliases endpoint (#9224)Travis Ralston3-3/+3
[MSC2432](https://github.com/matrix-org/matrix-doc/pull/2432) added this endpoint originally but it has since been included in the spec for nearly a year. This is progress towards https://github.com/matrix-org/synapse/issues/8334
2021-06-03Clarify changelog. v1.35.1 github/release-v1.35 release-v1.35Patrick Cloke1-1/+1
2021-06-031.35.1Patrick Cloke4-2/+16
2021-06-03Do not show invite-only rooms in spaces summary (unless joined/invited). ↵Patrick Cloke2-10/+10
(#10109)
2021-06-02Add new admin APIs to remove media by media ID from quarantine. (#10044)Dirk Klimpel5-10/+201
Related to: #6681, #5956, #10040 Signed-off-by: Dirk Klimpel dirk@klimpel.org
2021-06-02