Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unban state propagation isn't explained/is nonexistent for non-participating servers #1017

Open
ShadowJonathan opened this issue Apr 3, 2022 · 3 comments
Labels
clarification An area where the expected behaviour is understood, but the spec could do with being more explicit

Comments

@ShadowJonathan
Copy link
Contributor

Problem area

Server behaviour surrounding unbans.

Related bits;

Issue

Basically, if a one-user server (or a server of which only one user is involved) gets banned from a room, and then unbanned, then the unban state is not propagated to that server in any way.

This was originally raised as a synapse issue, but I believe this is a wider problem for the federation; Currently, on unban, the unbanned server is not "notified" of the ban, which may lead to wedging if it fails-fast on local state. Neither is there any documentation regarding if servers from unbanned users can fetch state regarding their own users' join state (in any way).

I believe this can be rectified by having the unbanning server do/queue a txn /send to the server in question, which'd allow it to recover and reset its internal status.

Related: matrix-org/synapse#1563

@ShadowJonathan ShadowJonathan added the clarification An area where the expected behaviour is understood, but the spec could do with being more explicit label Apr 3, 2022
@timokoesters
Copy link

timokoesters commented Apr 3, 2022

I believe this can be rectified by having the unbanning server do/queue a txn /send to the server in question, which'd allow it to recover and reset its internal status.

The problem with this is that the banned server potentially has to do a lot of state res and event handling just to stay up to date with a room it is not even in. I think the better solution would be to have the banned server do a proper /make_join /send_join to rejoin the room.

In general: Every time server wants to (re-)join a room it has no members in, it should do a /make_join, /send_join

@ShadowJonathan
Copy link
Contributor Author

ShadowJonathan commented Apr 3, 2022

In general: Every time server wants to (re-)join a room it has no members in, it should do a /make_join, /send_join

Thanks, I agree, but if this is the intention, it should have wording in the spec, currently there's just none.

@ShadowJonathan
Copy link
Contributor Author

MSC2314 looks related here as well.

@richvdh richvdh changed the title Unban state propagation isn't explained/is nonexistent for (then-)non-participating servers Unban state propagation isn't explained/is nonexistent for non-participating servers Jan 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
clarification An area where the expected behaviour is understood, but the spec could do with being more explicit
Projects
None yet
Development

No branches or pull requests

2 participants