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

Race condition with room creation means room directory lacks read-after-write consistency in monolith mode #15526

Open
matrixbot opened this issue Dec 21, 2023 · 0 comments

Comments

@matrixbot
Copy link
Collaborator

matrixbot commented Dec 21, 2023

This issue has been migrated from #15526.


It's possible to query the room directory after the room creation and not see the room.

Reproduction steps

  1. Using monolith Synapse
  2. Create a public room called foo with /createRoom
  3. Immediately after seeing a successful create room response, search the room directory for the room (/publicRooms with { filter: { generic_search_term: 'foo' } })
  4. Notice that the room is missing from the response ❌

If you give the homeserver some time, the room will show up.

Notes

This regressed in matrix-org/synapse#15229 where I guess the timing changed just enough for this to be possible. You can see the full bisect, investigation and context for how I noticed in matrix-org/matrix-viewer#208 (comment)

It seems like we're await'ing everywhere so not sure why this would happen. And seems weird that it would happen in monolith mode since there is not replication lag and we're awaiting everything.

@matrixbot matrixbot changed the title Dummy issue Race condition with room creation means room directory lacks read-after-write consistency in monolith mode Dec 21, 2023
@matrixbot matrixbot reopened this Dec 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant