-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Another case of state reset in State Resolution v2 #15987
Comments
Thanks for the thorough report. I think this is going to need more investigation and for us to double check the rules about what state a guest is supposed to see. (It'd also be good to rule out something like e.g. a response cache giving the guest stale data). |
After further investigation… this issue turns out to be completely different from what I originally thought. This issue is actually unrelated to whether a user is registered or a guest — that was a premature conclusion on my part. A brand new registered user appears to exhibit the exact same behavior described for the guest account. A critical confounding variable that I overlooked is that the account I was using for the registered user case had previously joined and left the room, without forgetting the room (it is a space, and Element does not expose the ability to forget spaces in the UI). I have successfully replicated the discrepancy between brand new user and joined-and-left-but-not-forgotten user on a different homeserver federated to the room (also Synapse v1.88.0). Attempting to join the room fails, whether as the joined-and-left-but-not-forgotten user or as the brand new user. So it appears that the 'true' state of All relevant events in the timeline, ordered:
Note that all the aforementioned timeline events are visible to brand new accounts on both homeservers. Yet both servers still believe The timing of the last successful join suggests that the release of Synapse v1.88.0 may have something to do with this issue. Regardless, this is very clearly a state resolution issue, in particular a state reset (#8629) — completely different from my initial conclusion. |
Update: See #15987 (comment). This original comment contains grossly incorrect conclusions.
Description
Synapse is responding over the client–server API with a different set of state events depending on whether the requesting user has registered an account or is a guest.
Steps to reproduce
This bug was discovered in room
!PfltsPSvJVImWNRDyj:matrix.org
. Here is a series of commands to demonstrate the problem:Inspection of the output files
user_state.json
andguest_state.json
reveals wildly different sets of state events, even though both come from the same homeserver. For example:In this case, the
m.room.join_rules
reported to registered users is the correct one, while them.room.join_rules
reported to guest users is an old event which has been replaced.This also does not appear to have any relation with
m.room.guest_access
, which was set to"guest_access": "forbidden"
long before either of them.room.join_rules
state events displayed above were sent.Homeserver
matrix.org
Synapse Version
1.88.0
Installation Method
I don't know
Database
I don't know
Workers
I don't know
Platform
I don't know
Configuration
No response
Relevant log output
No response
Anything else that would be useful to know?
This issue seems to have cropped up very recently, perhaps in Synapse v1.88.0 or v1.88.0rc1, though it is also entirely possible that it just went unnoticed until now.
The text was updated successfully, but these errors were encountered: