Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Possible half-solution to #3527 #3983

Closed
anaskaejdar opened this issue Sep 29, 2018 · 7 comments
Closed

Possible half-solution to #3527 #3983

anaskaejdar opened this issue Sep 29, 2018 · 7 comments

Comments

@anaskaejdar
Copy link

With regard to the issue in #3527 which was never resolved, but rather closed due to its high difficulty... I propose a sort of half-solution.

As it is, the only way to solve this problem afaik is to contact the admin of whatever room broke everything and have them kick you from the room. Maybe someone can write a script for server admins, so that they can force the server to send a Leave event, even though the server doesn't think the user is in that room.

@anaskaejdar
Copy link
Author

Granted I don't know how all this works. But I'm just thinking about this since I ran into this problem again today. And this time, another weird thing happened, where the room's admin says he kicked me from the room, but that kick apparently didn't federate to the other servers, so I'm still stuck in the bad state.

@jevolk
Copy link

jevolk commented Sep 29, 2018

This sounds like a typical synapism, solving the wrong problem with the wrong solution. #3527 shouldn't be a problem in the first place and jumping through hoops by setting leave and kick states to solve it shouldn't be necessary. Once you issue a join event and other servers see it then your state is join and if there is a problem with circulation then circulation should be fixed by this implementation, not the state...

@jevolk
Copy link

jevolk commented Sep 29, 2018

It's as simple as the local server persisting the join event before sending the /send_join/ knowing that the remote server has this asinine tendency to try and fully circulate it before responding with the 200 OK (by the way that's called an amplification attack ... watch, one day ...) which synapse/implementations shouldn't be doing anyway.

@anaskaejdar
Copy link
Author

I agree. However, even if the backwards join dealio gets fixed, it doesn't solve the problem for those already stuck in that state. Which, btw, I still am stuck in that state. I am at a loss, I have no idea how I'll fix the problem as it is right now. I can neither leave nor get kicked, and all these servers think I'm in that room and my HS is getting mauled.

@anaskaejdar
Copy link
Author

Okay I solved my particular issue. It was pretty much the same as #3573 and very much related to #2806. See #3573 for the solution. But yeah, sorry to sidetrack the thread like that. Back to the main topic: Force a leave event to fix the inconsistent state? (Y/n)

@jevolk
Copy link

jevolk commented Sep 30, 2018

Okay I solved my particular issue. It was pretty much the same as #3573 and very much related to #2806. See #3573 for the solution. But yeah, sorry to sidetrack the thread like that. Back to the main topic: Force a leave event to fix the inconsistent state? (Y/n)

Your solution here is to help us develop a better homeserver rather than one developed by Synapse's parent company. We're now working on the Construct over at https://github.com/matrix-construct and #zemos-test:matrix.org (or #test:zemos.net if it's online).

@richvdh
Copy link
Member

richvdh commented Oct 5, 2018

I'm afraid I don't really understand what is being proposed here:

With regard to the issue in #3527 which was never resolved, but rather closed due to its high difficulty

#3527 is not closed.

Maybe someone can write a script for server admins, so that they can force the server to send a Leave event, even though the server doesn't think the user is in that room.

If the server doesn't think the user is in the room, there is no problem. If the server does think the user is in the room, then an admin can kick them.

@richvdh richvdh closed this as completed Nov 8, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants