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

Unify matrix room names across servers #3680

Closed
err508 opened this issue Mar 26, 2019 · 3 comments
Closed

Unify matrix room names across servers #3680

err508 opened this issue Mar 26, 2019 · 3 comments
Assignees
Labels
Component / Transport Transport related issues

Comments

@err508
Copy link
Contributor

err508 commented Mar 26, 2019

Intro

During work on #3124 and #3262, many problems arose due to our usage one room_id per homeserver. In particular, if transport.leave_unused_rooms method is enabled for #3262, nodes can end up in a deadlock between joining and leaving reciprocal rooms.

Proposed solution

We have a utility to join global rooms, where we use unified room aliases and try to join rooms which where opened on other (than our) home servers already. This utility should be used for non-global rooms as well.

@andrevmatos
Copy link
Contributor

This was done in the past, and this invite mechanism was created exactly to prevent a DoS which could arise if the name/alias of the rooms were known, as a 3rd party could pre-create the rooms for a given pair and ban them from it, or join early and listen to the messages on it.
As we require private rooms, and for the private rooms there must be invites going between the parts, it was choosen as the mechanism to sync on the chat rooms.
If it's racing, we need to figure out why and fix it there, but I don't think we can use the same concept as the global rooms, as they rely on the alias being public, and also work only because the set of rooms is limited and we trust they're aliased early on each server, or else there would also be a potential DoS.

@err508
Copy link
Contributor Author

err508 commented Mar 28, 2019

I'm aware of the squatting vector. I'm currently implementing it for public rooms, where the room name is known anyway. We might implement secure and consistent private aliases in the future .

@ulope
Copy link
Collaborator

ulope commented Jan 13, 2020

No longer relevant since we stopped using public rooms

@ulope ulope closed this as completed Jan 13, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component / Transport Transport related issues
Projects
None yet
Development

No branches or pull requests

3 participants