mirror of
https://github.com/element-hq/synapse.git
synced 2024-11-29 07:28:55 +03:00
3e5749b99f
This is a small bug that I noticed while working on #8956.
We have a for-loop which attempts to strip all presence changes for each user except for the final one, as we don't really care about older presence:
9e19c6aab4/synapse/handlers/presence.py (L368-L371)
`new_states_dict` stores this stripped copy of latest presence state for each user, before it is... put into a new variable `new_state`, which is just overridden by the subsequent for loop.
I believe this was instead meant to override `new_states`. Without doing so, it effectively meant:
1. The for loop had no effect.
2. We were still processing old presence state for users.
1 line
No EOL
92 B
Text
1 line
No EOL
92 B
Text
Fix a long-standing bug in the deduplication of old presence, resulting in no deduplication. |