Reject history insertion during partial joins ()

This commit is contained in:
David Robertson 2022-10-27 10:52:23 +01:00 committed by GitHub
parent 40fa8294e3
commit cbe01ccc3f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 0 deletions
changelog.d
synapse/rest/client

1
changelog.d/14291.bugfix Normal file
View File

@ -0,0 +1 @@
Prevent history insertion ([MSC2716](https://github.com/matrix-org/matrix-spec-proposals/pull/2716)) during an partial join ([MSC3706](https://github.com/matrix-org/matrix-spec-proposals/pull/3706)).

View File

@ -108,6 +108,13 @@ class RoomBatchSendEventRestServlet(RestServlet):
errcode=Codes.MISSING_PARAM, errcode=Codes.MISSING_PARAM,
) )
if await self.store.is_partial_state_room(room_id):
raise SynapseError(
HTTPStatus.BAD_REQUEST,
"Cannot insert history batches until we have fully joined the room",
errcode=Codes.UNABLE_DUE_TO_PARTIAL_STATE,
)
# Verify the batch_id_from_query corresponds to an actual insertion event # Verify the batch_id_from_query corresponds to an actual insertion event
# and have the batch connected. # and have the batch connected.
if batch_id_from_query: if batch_id_from_query: