-
Notifications
You must be signed in to change notification settings - Fork 57
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
'Guest user can set display names' is flaky #836
Comments
could be just limited to worker configs? example: https://buildkite.com/matrix-dot-org/synapse/builds/7637#1a3300b7-7acb-404a-8664-a28f0fefb722 |
It looks like the flakiness is caused by the updated join event failing to send in time, while the profile is correctly updated in the database (i.e. |
So since Monday I haven't been managing to reproduce it, both on my machine (even with torture = 300) and on buildkite. I got it once on buildkite yesterday when testing another PR, so it's still somewhat flaky, but definitely not as much as it used to be, which makes it quite difficult to debug and test, and much less annoying. I've opened #846, which has the extra logging I used to test, and can always be useful, but with that I've just described it looks like going any further on it right now is going to turn into a time sink that wouldn't gain us a lot. |
I run into this pretty consistently, and it's annoyed me to the point where I want to investigate it. I found some logs from a bad test run, in server-0's homeserver.log:
The master process is notified that the user's membership changed in the room, but even requesting the state of the room 8 seconds later we still send back the old value. Seeing as the event_creator is supposedly the one handling these
It receives the membership change and the At this point I realised it was the main homeserver process that was handling these requests. Which is fine, but it's odd that the main process, which logs that it receives the membership update for the room, would still be responding with the old displayname... However, I did notice that in homeserver.log there is a request for the state of that room just before the membership change:
Of course our methods for grabbing the latest state from a room are cached: Could it be that we're not invalidating this cache on membership change? The method that's run after the |
An easy way to reproduce this is with the following:
where
|
I think the membership change notification is just meant to update the list of current members in the room (ie,
this is a PUT request: it's updating the state of the room, which is why it goes to the master.
Well, the |
oh, 🤦 . The problem is happening during the processing of
From a successful test run:
so the problem is that at the point Sorry if everybody else had already figured that out. |
I hadn't, so thank you 🙂 |
So I became unable to reproduce this bug with the setup described in #836 (comment), however switching to using redis-workers works again. New command:
Contents of
Note that you'll need to run the following to set up the docker network:
as described in sytest's docs. Eventually the process will die on a failing test case :) |
Hm, well scratch that. It's not reproducing anymore. There must be something that's getting left around that's allowing this test to succeed, but deleting all docker containers/images and retrying still produces passing tests. I think I'll have to start using CI :| |
so basically what happens is:
Easy fix: use |
*Hopefully*, fixes matrix-org#836
this seems to be failing on about 50% of test runs currently. Haven't yet had a chance to investigate
The text was updated successfully, but these errors were encountered: