File tree Expand file tree Collapse file tree 2 files changed +14
-2
lines changed
Expand file tree Collapse file tree 2 files changed +14
-2
lines changed Original file line number Diff line number Diff line change @@ -143,6 +143,9 @@ async def update_state(self, evt: StateEvent) -> None:
143143 if evt .type == EventType .ROOM_POWER_LEVELS :
144144 await self .set_power_levels (evt .room_id , evt .content )
145145 elif evt .type == EventType .ROOM_MEMBER :
146+ evt .unsigned ["mautrix_prev_membership" ] = await self .get_member (
147+ evt .room_id , UserID (evt .state_key )
148+ )
146149 await self .set_member (evt .room_id , UserID (evt .state_key ), evt .content )
147150 elif evt .type == EventType .ROOM_ENCRYPTION :
148151 await self .set_encryption_info (evt .room_id , evt .content )
Original file line number Diff line number Diff line change 1818 DeviceOTKCount ,
1919 EncryptionAlgorithm ,
2020 EventType ,
21+ Member ,
2122 Membership ,
2223 StateEvent ,
2324 ToDeviceEvent ,
@@ -172,10 +173,18 @@ async def handle_member_event(self, evt: StateEvent) -> None:
172173 if prev == cur or ignored_changes .get (prev ) == cur :
173174 return
174175 src = getattr (evt , "source" , None )
176+ prev_cache = evt .unsigned .get ("mautrix_prev_membership" )
177+ if isinstance (prev_cache , Member ) and prev_cache .membership == cur :
178+ self .log .debug (
179+ f"Got duplicate membership state event in { evt .room_id } changing { evt .state_key } "
180+ f"from { prev } to { cur } , cached state was { prev_cache } (event ID: { evt .event_id } , "
181+ f"sync source: { src } )"
182+ )
183+ return
175184 self .log .debug (
176185 f"Got membership state event in { evt .room_id } changing { evt .state_key } from "
177- f"{ prev } to { cur } (event ID: { evt .event_id } , sync source: { src } ) , "
178- " invalidating group session"
186+ f"{ prev } to { cur } (event ID: { evt .event_id } , sync source: { src } , "
187+ f"cached: { prev_cache . membership } ), invalidating group session"
179188 )
180189 await self .crypto_store .remove_outbound_group_session (evt .room_id )
181190
You can’t perform that action at this time.
0 commit comments