summary refs log tree commit diff
diff options
context:
space:
mode:
authorRichard van der Hoff <1389908+richvdh@users.noreply.github.com>2022-03-03 19:58:08 +0000
committerGitHub <noreply@github.com>2022-03-03 19:58:08 +0000
commit8533c8b03d8916e3805c7d0e0020226017680147 (patch)
treee850fb7b748fae399984c0f227e521769c118de1
parentRename various ApplicationServices interested methods (#11915) (diff)
downloadsynapse-8533c8b03d8916e3805c7d0e0020226017680147.tar.xz
Avoid generating state groups for local out-of-band leaves (#12154)
If we locally generate a rejection for an invite received over federation, it
is stored as an outlier (because we probably don't have the state for the
room). However, currently we still generate a state group for it (even though
the state in that state group will be nonsense).

By setting the `outlier` param on `create_event`, we avoid the nonsensical
state.
-rw-r--r--changelog.d/12154.misc1
-rw-r--r--synapse/handlers/room_member.py2
2 files changed, 2 insertions, 1 deletions
diff --git a/changelog.d/12154.misc b/changelog.d/12154.misc
new file mode 100644
index 0000000000..18d2a4728b
--- /dev/null
+++ b/changelog.d/12154.misc
@@ -0,0 +1 @@
+Avoid generating state groups for local out-of-band leaves.
diff --git a/synapse/handlers/room_member.py b/synapse/handlers/room_member.py
index a582837cf0..7cbc484b06 100644
--- a/synapse/handlers/room_member.py
+++ b/synapse/handlers/room_member.py
@@ -1736,8 +1736,8 @@ class RoomMemberMasterHandler(RoomMemberHandler):
             txn_id=txn_id,
             prev_event_ids=prev_event_ids,
             auth_event_ids=auth_event_ids,
+            outlier=True,
         )
-        event.internal_metadata.outlier = True
         event.internal_metadata.out_of_band_membership = True
 
         result_event = await self.event_creation_handler.handle_new_client_event(