You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Synapse has been observed sending inconsistent room state events for incremental syncs when looking at the timeline and state arrays for a particular room.
timeline: $91M -> $q5m
state: $9mF -> $91M # but, $91M has already been replaced by $q5m
timeline: $q5m -> $aem
state: $91M -> $q5m # but, $q5m has already been replaced by $aem
timeline: $aem -> $8LD
Because this is an incremental sync, there is no need for the state array to contain anything as the timeline has all the events anyhow. By sending the out of date state array back to the client it confuses the client.
Where bottom is most recent and background colour is the state groups.
If you look at the DB output, which is ordered by stream_ordering you can see that the state keeps bouncing back and forth. This is likely confusing the algorithm for computing the state deltas to send to clients, due to poor handling of these cases in Synapse. The fix for this is probably to move to tracking state changes via current state, but that is not a small change.
The text was updated successfully, but these errors were encountered:
This issue is based on element-hq/element-call#2458 (comment)
Synapse has been observed sending inconsistent room state events for incremental syncs when looking at the
timeline
andstate
arrays for a particular room.The HAR of the sync requests
Because this is an incremental sync, there is no need for the
state
array to contain anything as thetimeline
has all the events anyhow. By sending the out of datestate
array back to the client it confuses the client.Looking at the DB we get
The text was updated successfully, but these errors were encountered: