-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Conversation
Signed-off-by: Nicolas Werner <[email protected]>
Signed-off-by: Nicolas Werner <[email protected]>
Unfortunately this is now blocked until the spec makes its mind up about what to do here :/ |
Consensus on spec issue is that this is fine. |
…es rather than codepoints (#338) This effectively reverts the change made in [5f66df0](5f66df0) to bytes instead of codepoints, since Synapse will now enforce the same after matrix-org/synapse#13710. History here is that Synapse originally calculated bytes in Python 2.x, started counting codepoints in Python 3.x pretty much by accident and then the spec was ambiguous after the fact (hence matrix-org/matrix-spec#1001). Rationale is that bytes are probably easier for implementations to manage and less likely to generate huge indexes for client-side databases (especially where limits might exist like LMDB). cc @reivilibre
I'm going to revert this on develop. We want to see this change land for the protocol's sake (and plan to un-revert it) but want to give this a little more time before releasing this. |
This reverts commit fab495a. As noted in #13710 (comment): > We want to see this change land for the protocol's sake (and plan to un-revert it) but want to give this a little more time before releasing this.
This ended up happening in #14664, due for release in Synapse 1.74. |
This fixes Synapse possibly defederating some rooms with conduit and dendrite<=0.9.5 as well as breaking some clients relying on the guarantees of the client-server API.
Spec link: https://spec.matrix.org/v1.3/client-server-api/#size-limits
Spec issue: matrix-org/matrix-spec#1001
This does break some rooms, if they have any events violating these constraints in their auth chain. This however should not affect that many rooms, considering how long it took to discover this. Most notably those rooms didn't federate with conduit or dendrite servers (although the latter has changed their auth code to match the current synapse implementation recently). More specifically:
Considering all of the above, imo this should only break rooms intentionally abusing this issue to break rooms. It also makes Matrix a lot more predictable to handle and means you don't need to implement codepoint parsing in SDKs and other Matrix middleware.
Signed-off-by: Nicolas Werner [email protected]
Pull Request Checklist
EventStore
toEventWorkerStore
.".code blocks
.(run the linters)