Skip to content

Commit 265ee88

Browse files
Wrong retention policy being used when filtering events (lint ControlVarUsedAfterBlockViolation WPS441) (#17272)
Fix loop var being used outside block. Before this change, we were always using the last room_id's retention policy for all events being filtered. I found this bug with the [new lint rule, `ControlVarUsedAfterBlockViolation` `WPS441`](astral-sh/ruff#11769), that I re-implemented in `ruff`. Shout-out to @reivilibre for all the help in the beginning! ### Pull Request Checklist <!-- Please read https://element-hq.github.io/synapse/latest/development/contributing_guide.html before submitting your pull request --> * [x] Pull request is based on the develop branch * [x] Pull request includes a [changelog file](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#changelog). The entry should: - Be a short description of your change which makes sense to users. "Fixed a bug that prevented receiving messages from other servers." instead of "Moved X method from `EventStore` to `EventWorkerStore`.". - Use markdown where necessary, mostly for `code blocks`. - End with either a period (.) or an exclamation mark (!). - Start with a capital letter. - Feel free to credit yourself, by adding a sentence "Contributed by @github_username." or "Contributed by [Your Name]." to the end of the entry. * [x] [Code style](https://element-hq.github.io/synapse/latest/code_style.html) is correct (run the [linters](https://element-hq.github.io/synapse/latest/development/contributing_guide.html#run-the-linters))
1 parent ab94bce commit 265ee88

File tree

2 files changed

+2
-1
lines changed

2 files changed

+2
-1
lines changed

changelog.d/17272.bugfix

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fix wrong retention policy being used when filtering events.

synapse/visibility.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ def allowed(event: EventBase) -> Optional[EventBase]:
151151
filter_send_to_client=filter_send_to_client,
152152
sender_ignored=event.sender in ignore_list,
153153
always_include_ids=always_include_ids,
154-
retention_policy=retention_policies[room_id],
154+
retention_policy=retention_policies[event.room_id],
155155
state=state_after_event,
156156
is_peeking=is_peeking,
157157
sender_erased=erased_senders.get(event.sender, False),

0 commit comments

Comments
 (0)