diff --git a/changelog.d/14263.misc b/changelog.d/14263.misc
new file mode 100644
index 0000000000..11d9446a4b
--- /dev/null
+++ b/changelog.d/14263.misc
@@ -0,0 +1 @@
+Improve performance of the `/hierarchy` endpoint.
diff --git a/changelog.d/14644.bugfix b/changelog.d/14644.bugfix
new file mode 100644
index 0000000000..711088bb7e
--- /dev/null
+++ b/changelog.d/14644.bugfix
@@ -0,0 +1 @@
+Fix the *MAU Limits* section of the Grafana dashboard relying on a specific `job` name for the workers of a Synapse deployment.
\ No newline at end of file
diff --git a/changelog.d/14673.doc b/changelog.d/14673.doc
new file mode 100644
index 0000000000..7baf5f7f38
--- /dev/null
+++ b/changelog.d/14673.doc
@@ -0,0 +1 @@
+Declare support for Python 3.11.
diff --git a/contrib/grafana/synapse.json b/contrib/grafana/synapse.json
index 68705b6e6d..f09cd6f87c 100644
--- a/contrib/grafana/synapse.json
+++ b/contrib/grafana/synapse.json
@@ -1008,8 +1008,7 @@
"mode": "absolute",
"steps": [
{
- "color": "green",
- "value": null
+ "color": "green"
},
{
"color": "red",
@@ -1681,8 +1680,7 @@
"mode": "absolute",
"steps": [
{
- "color": "green",
- "value": null
+ "color": "green"
},
{
"color": "red",
@@ -2533,8 +2531,7 @@
"mode": "absolute",
"steps": [
{
- "color": "green",
- "value": null
+ "color": "green"
},
{
"color": "red",
@@ -11296,7 +11293,7 @@
"uid": "$datasource"
},
"editorMode": "code",
- "expr": "synapse_admin_mau_max{instance=\"$instance\", job=~\"(hhs_)?synapse\"}",
+ "expr": "max(synapse_admin_mau_max{instance=\"$instance\"})",
"format": "time_series",
"interval": "",
"intervalFactor": 1,
@@ -11310,7 +11307,7 @@
"uid": "$datasource"
},
"editorMode": "code",
- "expr": "synapse_admin_mau_current{instance=\"$instance\", job=~\"(hhs_)?synapse\"}",
+ "expr": "max(synapse_admin_mau_current{instance=\"$instance\"})",
"hide": false,
"legendFormat": "Current",
"range": true,
@@ -12760,6 +12757,6 @@
"timezone": "",
"title": "Synapse",
"uid": "000000012",
- "version": 149,
+ "version": 150,
"weekStart": ""
}
\ No newline at end of file
diff --git a/docs/setup/installation.md b/docs/setup/installation.md
index 436041f8a8..306085e005 100644
--- a/docs/setup/installation.md
+++ b/docs/setup/installation.md
@@ -200,7 +200,7 @@ When following this route please make sure that the [Platform-specific prerequis
System requirements:
- POSIX-compliant system (tested on Linux & OS X)
-- Python 3.7 or later, up to Python 3.10.
+- Python 3.7 or later, up to Python 3.11.
- At least 1GB of free RAM if you want to join large public rooms like #matrix:matrix.org
If building on an uncommon architecture for which pre-built wheels are
diff --git a/synapse/handlers/room_summary.py b/synapse/handlers/room_summary.py
index 8d08625237..c6b869c6f4 100644
--- a/synapse/handlers/room_summary.py
+++ b/synapse/handlers/room_summary.py
@@ -20,7 +20,6 @@ from typing import TYPE_CHECKING, Dict, Iterable, List, Optional, Sequence, Set,
import attr
from synapse.api.constants import (
- EventContentFields,
EventTypes,
HistoryVisibility,
JoinRules,
@@ -701,13 +700,6 @@ class RoomSummaryHandler:
# there should always be an entry
assert stats is not None, "unable to retrieve stats for %s" % (room_id,)
- current_state_ids = await self._storage_controllers.state.get_current_state_ids(
- room_id
- )
- create_event = await self._store.get_event(
- current_state_ids[(EventTypes.Create, "")]
- )
-
entry = {
"room_id": stats["room_id"],
"name": stats["name"],
@@ -720,7 +712,7 @@ class RoomSummaryHandler:
stats["history_visibility"] == HistoryVisibility.WORLD_READABLE
),
"guest_can_join": stats["guest_access"] == "can_join",
- "room_type": create_event.content.get(EventContentFields.ROOM_TYPE),
+ "room_type": stats["room_type"],
}
if self._msc3266_enabled:
@@ -730,7 +722,11 @@ class RoomSummaryHandler:
# Federation requests need to provide additional information so the
# requested server is able to filter the response appropriately.
if for_federation:
+ current_state_ids = (
+ await self._storage_controllers.state.get_current_state_ids(room_id)
+ )
room_version = await self._store.get_room_version(room_id)
+
if await self._event_auth_handler.has_restricted_join_rules(
current_state_ids, room_version
):
|