forked-synapse/synapse/federation
Sean Quah d329a566df
Faster joins: Fix incompatibility with restricted joins (#14882)
* Avoid clearing out forward extremities when doing a second remote join

When joining a restricted room where the local homeserver does not have
a user able to issue invites, we perform a second remote join. We want
to avoid clearing out forward extremities in this case because the
forward extremities we have are up to date and clearing out forward
extremities creates a window in which the room can get bricked if
Synapse crashes.

Signed-off-by: Sean Quah <seanq@matrix.org>

* Do a full join when doing a second remote join into a full state room

We cannot persist a partial state join event into a joined full state
room, so we perform a full state join for such rooms instead. As a
future optimization, we could always perform a partial state join and
compute or retrieve the full state ourselves if necessary.

Signed-off-by: Sean Quah <seanq@matrix.org>

* Add lock around partial state flag for rooms

Signed-off-by: Sean Quah <seanq@matrix.org>

* Preserve partial state info when doing a second partial state join

Signed-off-by: Sean Quah <seanq@matrix.org>

* Add newsfile

* Add a TODO(faster_joins) marker

Signed-off-by: Sean Quah <seanq@matrix.org>
2023-01-22 19:19:31 +00:00
..
sender Improve logging and opentracing for to-device message handling (#14598) 2022-12-06 09:52:55 +00:00
transport Stabilise serving partial join responses (#14839) 2023-01-17 12:44:15 +00:00
__init__.py
federation_base.py Track when the pulled event signature fails (#13815) 2022-10-03 14:53:29 -05:00
federation_client.py Faster joins: Fix incompatibility with restricted joins (#14882) 2023-01-22 19:19:31 +00:00
federation_server.py Also use stable name in SendJoinResponse struct (#14841) 2023-01-16 12:40:25 +00:00
persistence.py
send_queue.py Spread out sending device lists to remote hosts (#12132) 2022-03-04 11:48:15 +00:00
units.py