summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--CHANGES.md79
-rw-r--r--changelog.d/12504.misc1
-rw-r--r--changelog.d/14213.misc1
-rw-r--r--changelog.d/15388.feature1
-rw-r--r--changelog.d/15450.feature1
-rw-r--r--changelog.d/15520.feature1
-rw-r--r--changelog.d/15582.feature1
-rw-r--r--changelog.d/15609.bugfix1
-rw-r--r--changelog.d/15649.misc1
-rw-r--r--changelog.d/15650.misc1
-rw-r--r--changelog.d/15674.feature1
-rw-r--r--changelog.d/15675.misc1
-rw-r--r--changelog.d/15689.misc1
-rw-r--r--changelog.d/15690.misc1
-rw-r--r--changelog.d/15694.misc1
-rw-r--r--changelog.d/15695.bugfix1
-rw-r--r--changelog.d/15697.misc1
-rw-r--r--changelog.d/15705.feature1
-rw-r--r--changelog.d/15709.misc1
-rw-r--r--changelog.d/15710.feature1
-rw-r--r--changelog.d/15721.misc1
-rw-r--r--changelog.d/15723.misc1
-rw-r--r--changelog.d/15725.misc1
-rw-r--r--changelog.d/15726.misc1
-rw-r--r--changelog.d/15729.misc1
-rw-r--r--changelog.d/15731.misc1
-rw-r--r--changelog.d/15732.doc1
-rw-r--r--changelog.d/15733.misc1
-rw-r--r--changelog.d/15740.feature1
-rw-r--r--changelog.d/15752.misc1
-rw-r--r--changelog.d/15768.misc1
-rw-r--r--debian/changelog12
-rw-r--r--docs/usage/configuration/config_documentation.md26
-rw-r--r--pyproject.toml2
-rw-r--r--synapse/config/federation.py10
-rw-r--r--synapse/http/matrixfederationclient.py21
-rw-r--r--synapse/types/__init__.py2
-rw-r--r--tests/http/test_matrixfederationclient.py20
38 files changed, 103 insertions, 99 deletions
diff --git a/CHANGES.md b/CHANGES.md
index 5debbc35b6..f2f39c3b6e 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,82 @@
+Synapse 1.86.0rc2 (2023-06-14)
+==============================
+
+Bugfixes
+--------
+
+- Fix an error when having workers of different versions running. ([\#15774](https://github.com/matrix-org/synapse/issues/15774))
+
+
+Synapse 1.86.0rc1 (2023-06-13)
+==============================
+
+This version was tagged but never released.
+
+Features
+--------
+
+- Stable support for [MSC3882](https://github.com/matrix-org/matrix-spec-proposals/pull/3882) to allow an existing device/session to generate a login token for use on a new device/session. ([\#15388](https://github.com/matrix-org/synapse/issues/15388))
+- Support resolving a room's [canonical alias](https://spec.matrix.org/v1.7/client-server-api/#mroomcanonical_alias) via the module API. ([\#15450](https://github.com/matrix-org/synapse/issues/15450))
+- Enable support for [MSC3952](https://github.com/matrix-org/matrix-spec-proposals/pull/3952): intentional mentions. ([\#15520](https://github.com/matrix-org/synapse/issues/15520))
+- Experimental [MSC3861](https://github.com/matrix-org/matrix-spec-proposals/pull/3861) support: delegate auth to an OIDC provider. ([\#15582](https://github.com/matrix-org/synapse/issues/15582))
+- Add Synapse version deploy annotations to Grafana dashboard which enables easy correlation between behavior changes witnessed in a graph to a certain Synapse version and nail down regressions. ([\#15674](https://github.com/matrix-org/synapse/issues/15674))
+- Add a catch-all * to the supported relation types when redacting an event and its related events. This is an update to [MSC3912](https://github.com/matrix-org/matrix-spec-proposals/pull/3861) implementation. ([\#15705](https://github.com/matrix-org/synapse/issues/15705))
+- Speed up `/messages` by backfilling in the background when there are no backward extremities where we are directly paginating. ([\#15710](https://github.com/matrix-org/synapse/issues/15710))
+- Expose a metric reporting the database background update status. ([\#15740](https://github.com/matrix-org/synapse/issues/15740))
+
+
+Bugfixes
+--------
+
+- Correctly clear caches when we delete a room. ([\#15609](https://github.com/matrix-org/synapse/issues/15609))
+- Check permissions for enabling encryption earlier during room creation to avoid creating broken rooms. ([\#15695](https://github.com/matrix-org/synapse/issues/15695))
+
+
+Improved Documentation
+----------------------
+
+- Simplify query to find participating servers in a room. ([\#15732](https://github.com/matrix-org/synapse/issues/15732))
+
+
+Internal Changes
+----------------
+
+- Log when events are (maybe unexpectedly) filtered out of responses in tests. ([\#14213](https://github.com/matrix-org/synapse/issues/14213))
+- Read from column `full_user_id` rather than `user_id` of tables `profiles` and `user_filters`. ([\#15649](https://github.com/matrix-org/synapse/issues/15649))
+- Add support for tracing functions which return `Awaitable`s. ([\#15650](https://github.com/matrix-org/synapse/issues/15650))
+- Cache requests for user's devices over federation. ([\#15675](https://github.com/matrix-org/synapse/issues/15675))
+- Add fully qualified docker image names to Dockerfiles. ([\#15689](https://github.com/matrix-org/synapse/issues/15689))
+- Remove some unused code. ([\#15690](https://github.com/matrix-org/synapse/issues/15690))
+- Improve type hints. ([\#15694](https://github.com/matrix-org/synapse/issues/15694), [\#15697](https://github.com/matrix-org/synapse/issues/15697))
+- Update docstring and traces on `maybe_backfill()` functions. ([\#15709](https://github.com/matrix-org/synapse/issues/15709))
+- Add context for when/why to use the `long_retries` option when sending Federation requests. ([\#15721](https://github.com/matrix-org/synapse/issues/15721))
+- Removed some unused fields. ([\#15723](https://github.com/matrix-org/synapse/issues/15723))
+- Update federation error to more plainly explain we can only authorize our own membership events. ([\#15725](https://github.com/matrix-org/synapse/issues/15725))
+- Prevent the `latest_deps` and `twisted_trunk` daily GitHub Actions workflows from running on forks of the codebase. ([\#15726](https://github.com/matrix-org/synapse/issues/15726))
+- Improve performance of user directory search. ([\#15729](https://github.com/matrix-org/synapse/issues/15729))
+- Remove redundant table join with `room_memberships` when doing a `is_host_joined()`/`is_host_invited()` call (`membership` is already part of the `current_state_events`). ([\#15731](https://github.com/matrix-org/synapse/issues/15731))
+- Remove superfluous `room_memberships` join from background update. ([\#15733](https://github.com/matrix-org/synapse/issues/15733))
+- Speed up typechecking CI. ([\#15752](https://github.com/matrix-org/synapse/issues/15752))
+- Bump minimum supported Rust version to 1.60.0. ([\#15768](https://github.com/matrix-org/synapse/issues/15768))
+
+### Updates to locked dependencies
+
+* Bump importlib-metadata from 6.1.0 to 6.6.0. ([\#15711](https://github.com/matrix-org/synapse/issues/15711))
+* Bump library/redis from 6-bullseye to 7-bullseye in /docker. ([\#15712](https://github.com/matrix-org/synapse/issues/15712))
+* Bump log from 0.4.18 to 0.4.19. ([\#15761](https://github.com/matrix-org/synapse/issues/15761))
+* Bump phonenumbers from 8.13.11 to 8.13.13. ([\#15763](https://github.com/matrix-org/synapse/issues/15763))
+* Bump pyasn1 from 0.4.8 to 0.5.0. ([\#15713](https://github.com/matrix-org/synapse/issues/15713))
+* Bump pydantic from 1.10.8 to 1.10.9. ([\#15762](https://github.com/matrix-org/synapse/issues/15762))
+* Bump pyo3-log from 0.8.1 to 0.8.2. ([\#15759](https://github.com/matrix-org/synapse/issues/15759))
+* Bump pyopenssl from 23.1.1 to 23.2.0. ([\#15765](https://github.com/matrix-org/synapse/issues/15765))
+* Bump regex from 1.7.3 to 1.8.4. ([\#15769](https://github.com/matrix-org/synapse/issues/15769))
+* Bump sentry-sdk from 1.22.1 to 1.25.0. ([\#15714](https://github.com/matrix-org/synapse/issues/15714))
+* Bump sentry-sdk from 1.25.0 to 1.25.1. ([\#15764](https://github.com/matrix-org/synapse/issues/15764))
+* Bump serde from 1.0.163 to 1.0.164. ([\#15760](https://github.com/matrix-org/synapse/issues/15760))
+* Bump types-jsonschema from 4.17.0.7 to 4.17.0.8. ([\#15716](https://github.com/matrix-org/synapse/issues/15716))
+* Bump types-pyopenssl from 23.1.0.2 to 23.2.0.0. ([\#15766](https://github.com/matrix-org/synapse/issues/15766))
+* Bump types-requests from 2.31.0.0 to 2.31.0.1. ([\#15715](https://github.com/matrix-org/synapse/issues/15715))
+
 Synapse 1.85.2 (2023-06-08)
 ===========================
 
diff --git a/changelog.d/12504.misc b/changelog.d/12504.misc
deleted file mode 100644
index 0bebaa213d..0000000000
--- a/changelog.d/12504.misc
+++ /dev/null
@@ -1 +0,0 @@
-Allow for the configuration of max request retries and min/max retry delays in the matrix federation client.
diff --git a/changelog.d/14213.misc b/changelog.d/14213.misc
deleted file mode 100644
index b0689f3d15..0000000000
--- a/changelog.d/14213.misc
+++ /dev/null
@@ -1 +0,0 @@
-Log when events are (maybe unexpectedly) filtered out of responses in tests.
diff --git a/changelog.d/15388.feature b/changelog.d/15388.feature
deleted file mode 100644
index 6cc55cafa2..0000000000
--- a/changelog.d/15388.feature
+++ /dev/null
@@ -1 +0,0 @@
-Stable support for [MSC3882](https://github.com/matrix-org/matrix-spec-proposals/pull/3882) to allow an existing device/session to generate a login token for use on a new device/session.
\ No newline at end of file
diff --git a/changelog.d/15450.feature b/changelog.d/15450.feature
deleted file mode 100644
index 2102381143..0000000000
--- a/changelog.d/15450.feature
+++ /dev/null
@@ -1 +0,0 @@
-Support resolving a room's [canonical alias](https://spec.matrix.org/v1.7/client-server-api/#mroomcanonical_alias) via the module API.
\ No newline at end of file
diff --git a/changelog.d/15520.feature b/changelog.d/15520.feature
deleted file mode 100644
index f4fd40ab94..0000000000
--- a/changelog.d/15520.feature
+++ /dev/null
@@ -1 +0,0 @@
-Enable support for [MSC3952](https://github.com/matrix-org/matrix-spec-proposals/pull/3952): intentional mentions.
diff --git a/changelog.d/15582.feature b/changelog.d/15582.feature
deleted file mode 100644
index 00959500a5..0000000000
--- a/changelog.d/15582.feature
+++ /dev/null
@@ -1 +0,0 @@
-Experimental [MSC3861](https://github.com/matrix-org/matrix-spec-proposals/pull/3861) support: delegate auth to an OIDC provider.
diff --git a/changelog.d/15609.bugfix b/changelog.d/15609.bugfix
deleted file mode 100644
index b5a990cfec..0000000000
--- a/changelog.d/15609.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Correctly clear caches when we delete a room.
diff --git a/changelog.d/15649.misc b/changelog.d/15649.misc
deleted file mode 100644
index fca38abe0f..0000000000
--- a/changelog.d/15649.misc
+++ /dev/null
@@ -1 +0,0 @@
-Read from column `full_user_id` rather than `user_id` of tables `profiles` and `user_filters`.
diff --git a/changelog.d/15650.misc b/changelog.d/15650.misc
deleted file mode 100644
index 9bbad113e1..0000000000
--- a/changelog.d/15650.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add support for tracing functions which return `Awaitable`s.
diff --git a/changelog.d/15674.feature b/changelog.d/15674.feature
deleted file mode 100644
index 68cf207dc0..0000000000
--- a/changelog.d/15674.feature
+++ /dev/null
@@ -1 +0,0 @@
-Add Syanpse version deploy annotations to Grafana dashboard which enables easy correlation between behavior changes witnessed in a graph to a certain Synapse version and nail down regressions.
diff --git a/changelog.d/15675.misc b/changelog.d/15675.misc
deleted file mode 100644
index 05538fdbef..0000000000
--- a/changelog.d/15675.misc
+++ /dev/null
@@ -1 +0,0 @@
-Cache requests for user's devices over federation.
diff --git a/changelog.d/15689.misc b/changelog.d/15689.misc
deleted file mode 100644
index 4262cc9515..0000000000
--- a/changelog.d/15689.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add fully qualified docker image names to Dockerfiles.
diff --git a/changelog.d/15690.misc b/changelog.d/15690.misc
deleted file mode 100644
index c6c259eb7d..0000000000
--- a/changelog.d/15690.misc
+++ /dev/null
@@ -1 +0,0 @@
-Remove some unused code.
diff --git a/changelog.d/15694.misc b/changelog.d/15694.misc
deleted file mode 100644
index 93ceaeafc9..0000000000
--- a/changelog.d/15694.misc
+++ /dev/null
@@ -1 +0,0 @@
-Improve type hints.
diff --git a/changelog.d/15695.bugfix b/changelog.d/15695.bugfix
deleted file mode 100644
index 99bf1fe05e..0000000000
--- a/changelog.d/15695.bugfix
+++ /dev/null
@@ -1 +0,0 @@
-Check permissions for enabling encryption earlier during room creation to avoid creating broken rooms.
diff --git a/changelog.d/15697.misc b/changelog.d/15697.misc
deleted file mode 100644
index 93ceaeafc9..0000000000
--- a/changelog.d/15697.misc
+++ /dev/null
@@ -1 +0,0 @@
-Improve type hints.
diff --git a/changelog.d/15705.feature b/changelog.d/15705.feature
deleted file mode 100644
index e3cbb5a12e..0000000000
--- a/changelog.d/15705.feature
+++ /dev/null
@@ -1 +0,0 @@
-Add a catch-all * to the supported relation types when redacting an event and its related events. This is an update to [MSC3912](https://github.com/matrix-org/matrix-spec-proposals/pull/3861) implementation.
diff --git a/changelog.d/15709.misc b/changelog.d/15709.misc
deleted file mode 100644
index e9ce84a940..0000000000
--- a/changelog.d/15709.misc
+++ /dev/null
@@ -1 +0,0 @@
-Update docstring and traces on `maybe_backfill()` functions.
diff --git a/changelog.d/15710.feature b/changelog.d/15710.feature
deleted file mode 100644
index fe77a2fef6..0000000000
--- a/changelog.d/15710.feature
+++ /dev/null
@@ -1 +0,0 @@
-Speed up `/messages` by backfilling in the background when there are no backward extremities where we are directly paginating.
diff --git a/changelog.d/15721.misc b/changelog.d/15721.misc
deleted file mode 100644
index f4d892daf9..0000000000
--- a/changelog.d/15721.misc
+++ /dev/null
@@ -1 +0,0 @@
-Add context for when/why to use the `long_retries` option when sending Federation requests.
diff --git a/changelog.d/15723.misc b/changelog.d/15723.misc
deleted file mode 100644
index ba331adca7..0000000000
--- a/changelog.d/15723.misc
+++ /dev/null
@@ -1 +0,0 @@
-Removed some unused fields.
diff --git a/changelog.d/15725.misc b/changelog.d/15725.misc
deleted file mode 100644
index 6c7a8a41d8..0000000000
--- a/changelog.d/15725.misc
+++ /dev/null
@@ -1 +0,0 @@
-Update federation error to more plainly explain we can only authorize our own membership events.
diff --git a/changelog.d/15726.misc b/changelog.d/15726.misc
deleted file mode 100644
index 941e541e77..0000000000
--- a/changelog.d/15726.misc
+++ /dev/null
@@ -1 +0,0 @@
-Prevent the `latest_deps` and `twisted_trunk` daily GitHub Actions workflows from running on forks of the codebase.
\ No newline at end of file
diff --git a/changelog.d/15729.misc b/changelog.d/15729.misc
deleted file mode 100644
index 3940254305..0000000000
--- a/changelog.d/15729.misc
+++ /dev/null
@@ -1 +0,0 @@
-Improve performance of user directory search.
diff --git a/changelog.d/15731.misc b/changelog.d/15731.misc
deleted file mode 100644
index 906bc26962..0000000000
--- a/changelog.d/15731.misc
+++ /dev/null
@@ -1 +0,0 @@
-Remove redundant table join with `room_memberships` when doing a `is_host_joined()`/`is_host_invited()` call (`membership` is already part of the `current_state_events`).
diff --git a/changelog.d/15732.doc b/changelog.d/15732.doc
deleted file mode 100644
index b0e8639df7..0000000000
--- a/changelog.d/15732.doc
+++ /dev/null
@@ -1 +0,0 @@
-Simplify query to find participating servers in a room.
diff --git a/changelog.d/15733.misc b/changelog.d/15733.misc
deleted file mode 100644
index 3ae7be3c27..0000000000
--- a/changelog.d/15733.misc
+++ /dev/null
@@ -1 +0,0 @@
-Remove superfluous `room_memberships` join from background update.
diff --git a/changelog.d/15740.feature b/changelog.d/15740.feature
deleted file mode 100644
index fed342ea55..0000000000
--- a/changelog.d/15740.feature
+++ /dev/null
@@ -1 +0,0 @@
-Expose a metric reporting the database background update status.
diff --git a/changelog.d/15752.misc b/changelog.d/15752.misc
deleted file mode 100644
index 7e373b1275..0000000000
--- a/changelog.d/15752.misc
+++ /dev/null
@@ -1 +0,0 @@
-Speed up typechecking CI.
diff --git a/changelog.d/15768.misc b/changelog.d/15768.misc
deleted file mode 100644
index bc4b86323c..0000000000
--- a/changelog.d/15768.misc
+++ /dev/null
@@ -1 +0,0 @@
-Bump minimum supported Rust version to 1.60.0.
diff --git a/debian/changelog b/debian/changelog
index a7503ea60a..81b71ba342 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,15 @@
+matrix-synapse-py3 (1.86.0~rc2) stable; urgency=medium
+
+  * New Synapse release 1.86.0rc2.
+
+ -- Synapse Packaging team <packages@matrix.org>  Wed, 14 Jun 2023 12:16:27 +0200
+
+matrix-synapse-py3 (1.86.0~rc1) stable; urgency=medium
+
+  * New Synapse release 1.86.0rc1.
+
+ -- Synapse Packaging team <packages@matrix.org>  Tue, 13 Jun 2023 14:30:45 +0200
+
 matrix-synapse-py3 (1.85.2) stable; urgency=medium
 
   * New Synapse release 1.85.2.
diff --git a/docs/usage/configuration/config_documentation.md b/docs/usage/configuration/config_documentation.md
index 8426de0417..0cf6e075ff 100644
--- a/docs/usage/configuration/config_documentation.md
+++ b/docs/usage/configuration/config_documentation.md
@@ -1196,32 +1196,6 @@ Example configuration:
 allow_device_name_lookup_over_federation: true
 ```
 ---
-### `federation`
-
-The federation section defines some sub-options related to federation.
-
-The following options are related to configuring timeout and retry logic for one request,
-independently of the others.
-Short retry algorithm is used when something or someone will wait for the request to have an
-answer, while long retry is used for requests that happen in the background,
-like sending a federation transaction.
-
-* `client_timeout`: timeout for the federation requests in seconds. Default to 60s.
-* `max_short_retry_delay`: maximum delay to be used for the short retry algo in seconds. Default to 2s.
-* `max_long_retry_delay`: maximum delay to be used for the short retry algo in seconds. Default to 60s.
-* `max_short_retries`: maximum number of retries for the short retry algo. Default to 3 attempts.
-* `max_long_retries`: maximum number of retries for the long retry algo. Default to 10 attempts.
-
-Example configuration:
-```yaml
-federation:
-  client_timeout: 180
-  max_short_retry_delay: 7
-  max_long_retry_delay: 100
-  max_short_retries: 5
-  max_long_retries: 20
-```
----
 ## Caching
 
 Options related to caching.
diff --git a/pyproject.toml b/pyproject.toml
index d42d7644d8..097bd03943 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -89,7 +89,7 @@ manifest-path = "rust/Cargo.toml"
 
 [tool.poetry]
 name = "matrix-synapse"
-version = "1.85.2"
+version = "1.86.0rc2"
 description = "Homeserver for the Matrix decentralised comms protocol"
 authors = ["Matrix.org Team and Contributors <packages@matrix.org>"]
 license = "Apache-2.0"
diff --git a/synapse/config/federation.py b/synapse/config/federation.py
index d21f7fd02a..336fca578a 100644
--- a/synapse/config/federation.py
+++ b/synapse/config/federation.py
@@ -22,8 +22,6 @@ class FederationConfig(Config):
     section = "federation"
 
     def read_config(self, config: JsonDict, **kwargs: Any) -> None:
-        federation_config = config.setdefault("federation", {})
-
         # FIXME: federation_domain_whitelist needs sytests
         self.federation_domain_whitelist: Optional[dict] = None
         federation_domain_whitelist = config.get("federation_domain_whitelist", None)
@@ -51,13 +49,5 @@ class FederationConfig(Config):
             "allow_device_name_lookup_over_federation", False
         )
 
-        # Allow for the configuration of timeout, max request retries
-        # and min/max retry delays in the matrix federation client.
-        self.client_timeout = federation_config.get("client_timeout", 60)
-        self.max_long_retry_delay = federation_config.get("max_long_retry_delay", 60)
-        self.max_short_retry_delay = federation_config.get("max_short_retry_delay", 2)
-        self.max_long_retries = federation_config.get("max_long_retries", 10)
-        self.max_short_retries = federation_config.get("max_short_retries", 3)
-
 
 _METRICS_FOR_DOMAINS_SCHEMA = {"type": "array", "items": {"type": "string"}}
diff --git a/synapse/http/matrixfederationclient.py b/synapse/http/matrixfederationclient.py
index ed36825b67..abb5ae5815 100644
--- a/synapse/http/matrixfederationclient.py
+++ b/synapse/http/matrixfederationclient.py
@@ -95,6 +95,8 @@ incoming_responses_counter = Counter(
 )
 
 
+MAX_LONG_RETRIES = 10
+MAX_SHORT_RETRIES = 3
 MAXINT = sys.maxsize
 
 
@@ -404,12 +406,7 @@ class MatrixFederationHttpClient:
         self.clock = hs.get_clock()
         self._store = hs.get_datastores().main
         self.version_string_bytes = hs.version_string.encode("ascii")
-        self.default_timeout = hs.config.federation.client_timeout
-
-        self.max_long_retry_delay = hs.config.federation.max_long_retry_delay
-        self.max_short_retry_delay = hs.config.federation.max_short_retry_delay
-        self.max_long_retries = hs.config.federation.max_long_retries
-        self.max_short_retries = hs.config.federation.max_short_retries
+        self.default_timeout = 60
 
         self._cooperator = Cooperator(scheduler=_make_scheduler(self.reactor))
 
@@ -586,9 +583,9 @@ class MatrixFederationHttpClient:
             # XXX: Would be much nicer to retry only at the transaction-layer
             # (once we have reliable transactions in place)
             if long_retries:
-                retries_left = self.max_long_retries
+                retries_left = MAX_LONG_RETRIES
             else:
-                retries_left = self.max_short_retries
+                retries_left = MAX_SHORT_RETRIES
 
             url_bytes = request.uri
             url_str = url_bytes.decode("ascii")
@@ -733,12 +730,12 @@ class MatrixFederationHttpClient:
 
                     if retries_left and not timeout:
                         if long_retries:
-                            delay = 4 ** (self.max_long_retries + 1 - retries_left)
-                            delay = min(delay, self.max_long_retry_delay)
+                            delay = 4 ** (MAX_LONG_RETRIES + 1 - retries_left)
+                            delay = min(delay, 60)
                             delay *= random.uniform(0.8, 1.4)
                         else:
-                            delay = 0.5 * 2 ** (self.max_short_retries - retries_left)
-                            delay = min(delay, self.max_short_retry_delay)
+                            delay = 0.5 * 2 ** (MAX_SHORT_RETRIES - retries_left)
+                            delay = min(delay, 2)
                             delay *= random.uniform(0.8, 1.4)
 
                         logger.debug(
diff --git a/synapse/types/__init__.py b/synapse/types/__init__.py
index dfc95e8ebb..095be070e0 100644
--- a/synapse/types/__init__.py
+++ b/synapse/types/__init__.py
@@ -177,7 +177,7 @@ class Requester:
             user=UserID.from_string(input["user_id"]),
             access_token_id=input["access_token_id"],
             is_guest=input["is_guest"],
-            scope=set(input["scope"]),
+            scope=set(input.get("scope", [])),
             shadow_banned=input["shadow_banned"],
             device_id=input["device_id"],
             app_service=appservice,
diff --git a/tests/http/test_matrixfederationclient.py b/tests/http/test_matrixfederationclient.py
index 8565f8ac64..0dfc03ce50 100644
--- a/tests/http/test_matrixfederationclient.py
+++ b/tests/http/test_matrixfederationclient.py
@@ -40,7 +40,7 @@ from synapse.server import HomeServer
 from synapse.util import Clock
 
 from tests.server import FakeTransport
-from tests.unittest import HomeserverTestCase, override_config
+from tests.unittest import HomeserverTestCase
 
 
 def check_logcontext(context: LoggingContextOrSentinel) -> None:
@@ -640,21 +640,3 @@ class FederationClientTests(HomeserverTestCase):
             self.cl.build_auth_headers(
                 b"", b"GET", b"https://example.com", destination_is=b""
             )
-
-    @override_config(
-        {
-            "federation": {
-                "client_timeout": 180,
-                "max_long_retry_delay": 100,
-                "max_short_retry_delay": 7,
-                "max_long_retries": 20,
-                "max_short_retries": 5,
-            }
-        }
-    )
-    def test_configurable_retry_and_delay_values(self) -> None:
-        self.assertEqual(self.cl.default_timeout, 180)
-        self.assertEqual(self.cl.max_long_retry_delay, 100)
-        self.assertEqual(self.cl.max_short_retry_delay, 7)
-        self.assertEqual(self.cl.max_long_retries, 20)
-        self.assertEqual(self.cl.max_short_retries, 5)