From b014c078cbeadb40324a830d23ceb48ec0536f14 Mon Sep 17 00:00:00 2001 From: Andrew Ferrazzutti Date: Mon, 10 Feb 2025 08:32:59 -0500 Subject: [PATCH] Rename ratelimit config key to clarify its purpose This rate limit is for the _management_ of delayed events, not the sending of the events themselves (which will be managed by a different ratelimit setting to be added later). --- demo/start.sh | 2 +- docker/complement/conf/workers-shared-extra.yaml.j2 | 2 +- docs/usage/configuration/config_documentation.md | 4 ++-- synapse/config/ratelimiting.py | 4 ++-- synapse/handlers/delayed_events.py | 10 +++++----- tests/rest/client/test_delayed_events.py | 6 +++--- 6 files changed, 14 insertions(+), 14 deletions(-) diff --git a/demo/start.sh b/demo/start.sh index 2eb59ebebb2..9c81e288911 100755 --- a/demo/start.sh +++ b/demo/start.sh @@ -138,7 +138,7 @@ for port in 8080 8081 8082; do per_user: per_second: 1000 burst_count: 1000 - rc_delayed_event: + rc_delayed_event_mgmt: per_second: 1000 burst_count: 1000 RC diff --git a/docker/complement/conf/workers-shared-extra.yaml.j2 b/docker/complement/conf/workers-shared-extra.yaml.j2 index c8551b2bcee..58bbff69feb 100644 --- a/docker/complement/conf/workers-shared-extra.yaml.j2 +++ b/docker/complement/conf/workers-shared-extra.yaml.j2 @@ -94,7 +94,7 @@ rc_presence: per_second: 9999 burst_count: 9999 -rc_delayed_event: +rc_delayed_event_mgmt: per_second: 9999 burst_count: 9999 diff --git a/docs/usage/configuration/config_documentation.md b/docs/usage/configuration/config_documentation.md index e1a7d1c0435..5f7dcf4b09c 100644 --- a/docs/usage/configuration/config_documentation.md +++ b/docs/usage/configuration/config_documentation.md @@ -1889,7 +1889,7 @@ rc_presence: burst_count: 0.5 ``` --- -### `rc_delayed_event` +### `rc_delayed_event_mgmt` Ratelimiting settings for delayed event management. @@ -1907,7 +1907,7 @@ without the risk of being ratelimited. Example configuration: ```yaml -rc_delayed_event: +rc_delayed_event_mgmt: per_second: 2 burst_count: 20 ``` diff --git a/synapse/config/ratelimiting.py b/synapse/config/ratelimiting.py index ff570830ce7..eb1dc2dacbf 100644 --- a/synapse/config/ratelimiting.py +++ b/synapse/config/ratelimiting.py @@ -235,8 +235,8 @@ def read_config(self, config: JsonDict, **kwargs: Any) -> None: defaults={"per_second": 0.1, "burst_count": 1}, ) - self.rc_delayed_event = RatelimitSettings.parse( + self.rc_delayed_event_mgmt = RatelimitSettings.parse( config, - "rc_delayed_event", + "rc_delayed_event_mgmt", defaults={"per_second": 1, "burst_count": 5}, ) diff --git a/synapse/handlers/delayed_events.py b/synapse/handlers/delayed_events.py index 49f0ec9238c..b3f40809a14 100644 --- a/synapse/handlers/delayed_events.py +++ b/synapse/handlers/delayed_events.py @@ -65,10 +65,10 @@ def __init__(self, hs: "HomeServer"): # Ratelimiter for management of existing delayed events, # keyed by the sending user ID & device ID. - self._delayed_event_ratelimiter = Ratelimiter( + self._delayed_event_mgmt_ratelimiter = Ratelimiter( store=self._store, clock=self._clock, - cfg=self._config.ratelimiting.rc_delayed_event, + cfg=self._config.ratelimiting.rc_delayed_event_mgmt, ) self._next_delayed_event_call: Optional[IDelayedCall] = None @@ -298,7 +298,7 @@ async def cancel(self, requester: Requester, delay_id: str) -> None: NotFoundError: if no matching delayed event could be found. """ assert self._is_master - await self._delayed_event_ratelimiter.ratelimit( + await self._delayed_event_mgmt_ratelimiter.ratelimit( requester, (requester.user.to_string(), requester.device_id), ) @@ -324,7 +324,7 @@ async def restart(self, requester: Requester, delay_id: str) -> None: NotFoundError: if no matching delayed event could be found. """ assert self._is_master - await self._delayed_event_ratelimiter.ratelimit( + await self._delayed_event_mgmt_ratelimiter.ratelimit( requester, (requester.user.to_string(), requester.device_id), ) @@ -436,7 +436,7 @@ def _schedule_next_at(self, next_send_ts: Timestamp) -> None: async def get_all_for_user(self, requester: Requester) -> List[JsonDict]: """Return all pending delayed events requested by the given user.""" - await self._delayed_event_ratelimiter.ratelimit( + await self._delayed_event_mgmt_ratelimiter.ratelimit( requester, (requester.user.to_string(), requester.device_id), ) diff --git a/tests/rest/client/test_delayed_events.py b/tests/rest/client/test_delayed_events.py index 303a0e27175..2c938390c86 100644 --- a/tests/rest/client/test_delayed_events.py +++ b/tests/rest/client/test_delayed_events.py @@ -110,7 +110,7 @@ def test_delayed_state_events_are_sent_on_timeout(self) -> None: self.assertEqual(setter_expected, content.get(setter_key), content) @unittest.override_config( - {"rc_delayed_event": {"per_second": 0.5, "burst_count": 1}} + {"rc_delayed_event_mgmt": {"per_second": 0.5, "burst_count": 1}} ) def test_get_delayed_events_ratelimit(self) -> None: args = ("GET", PATH_PREFIX) @@ -228,7 +228,7 @@ def test_cancel_delayed_state_event(self) -> None: ) @unittest.override_config( - {"rc_delayed_event": {"per_second": 0.5, "burst_count": 1}} + {"rc_delayed_event_mgmt": {"per_second": 0.5, "burst_count": 1}} ) def test_cancel_delayed_event_ratelimit(self) -> None: delay_ids = [] @@ -409,7 +409,7 @@ def test_restart_delayed_state_event(self) -> None: self.assertEqual(setter_expected, content.get(setter_key), content) @unittest.override_config( - {"rc_delayed_event": {"per_second": 0.5, "burst_count": 1}} + {"rc_delayed_event_mgmt": {"per_second": 0.5, "burst_count": 1}} ) def test_restart_delayed_event_ratelimit(self) -> None: delay_ids = []