Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Prevent join->join membership transitions changing member count #7977

Merged
merged 10 commits into from
Aug 3, 2020
1 change: 1 addition & 0 deletions changelog.d/7977.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix a bug that caused room membership counts to increase when changing per-room profile information. Introduced in Synapse v1.7.2.
anoadragon453 marked this conversation as resolved.
Show resolved Hide resolved
9 changes: 9 additions & 0 deletions synapse/handlers/stats.py
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,15 @@ async def _handle_deltas(self, deltas):

membership = event_content.get("membership", Membership.LEAVE)

# Check whether this state event is a transition from join->join.
# This can happen e.g when a user changes their per-room display name.
is_join_to_join = (
prev_membership == Membership.JOIN and membership == Membership.JOIN
)
if is_join_to_join:
# This action does not currently affect any further stats
continue

if prev_membership is None:
logger.debug("No previous membership for this user.")
elif membership == prev_membership:
Expand Down