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

ChannelManager shouldn't recursively try to initialise channels on failure #22060

Closed
frenzibyte opened this issue Jan 7, 2023 Discussed in #22042 · 1 comment · Fixed by #22085
Closed

ChannelManager shouldn't recursively try to initialise channels on failure #22060

frenzibyte opened this issue Jan 7, 2023 Discussed in #22042 · 1 comment · Fixed by #22085
Assignees
Labels
priority:1 Very important. Feels bad without fix. Affects the majority of users. type:online

Comments

@frenzibyte
Copy link
Member

That's pretty awkward handling. It should probably be dependant on the API's state at the very least, and/or delay the next request by few milliseconds.

Discussed in #22042

Originally posted by Stedoss January 6, 2023
I searched and couldn't find any reported issues relating to this, sorry if there is one! Have only just noticed this started happening.

Issue

Crash to desktop.

After logging in and logging out again (seems to be when you do it somewhat quickly), hundreds of requests get queued up and eventually crash the application (I believe the problem request being ListChannelsRequest). Seems to be a recursive issue since the request's fail handler calls the function it's in, but haven't dug into this one too much (sorry!).

Reproduction steps

  1. Log in
  2. Quickly log out (doesn't happen every time, seems to have a certain timing to it)
  3. Game freezes and eventually crashes to desktop

Video

explorer_1dYCppoAPB.mp4

Logs

runtime.log
updater.log
input.log
network.log
performance.log

Relevant logs

runtime.log

2023-01-06 01:51:51 [verbose]: Current channel changed to #osu
2023-01-06 01:51:51 [error]: Fetching channel list failed
2023-01-06 01:51:51 [error]: System.Net.WebException: Request failed from flush operation (state Offline)
2023-01-06 01:51:51 [error]: Fetching channel list failed
2023-01-06 01:51:51 [error]: System.Net.WebException: User not logged in
2023-01-06 01:51:51 [error]: Fetching channel list failed
2023-01-06 01:51:51 [error]: System.Net.WebException: User not logged in
2023-01-06 01:51:51 [error]: Fetching channel list failed
2023-01-06 01:51:51 [error]: System.Net.WebException: User not logged in
2023-01-06 01:51:51 [error]: Fetching channel list failed
2023-01-06 01:51:51 [error]: System.Net.WebException: User not logged in
2023-01-06 01:51:51 [error]: Fetching channel list failed
2023-01-06 01:51:51 [error]: System.Net.WebException: User not logged in
2023-01-06 01:51:51 [error]: Fetching channel list failed
2023-01-06 01:51:51 [error]: System.Net.WebException: User not logged in
2023-01-06 01:51:51 [error]: Fetching channel list failed
...

network.log

2023-01-06 01:51:51 [verbose]: WebSocketNotificationsClientConnector connected!
2023-01-06 01:51:51 [verbose]: Performing request osu.Game.Online.API.Requests.GetUpdatesRequest
2023-01-06 01:51:51 [verbose]: Request to https://lazer.ppy.sh/api/v2/chat/updates successfully completed!
2023-01-06 01:51:51 [verbose]: osu.Game.Online.API.Requests.GetUpdatesRequest finished with response size of 3,656 bytes
2023-01-06 01:51:51 [verbose]: Failing request osu.Game.Online.API.Requests.GetMessagesRequest (System.Net.WebException: Request failed from flush operation (state Offline))
2023-01-06 01:51:51 [verbose]: Failing request osu.Game.Online.API.Requests.ListChannelsRequest (System.Net.WebException: Request failed from flush operation (state Offline))
2023-01-06 01:51:51 [verbose]: Failing request osu.Game.Online.API.Requests.ListChannelsRequest (System.Net.WebException: User not logged in)
2023-01-06 01:51:51 [verbose]: Failing request osu.Game.Online.API.Requests.ListChannelsRequest (System.Net.WebException: User not logged in)
2023-01-06 01:51:51 [verbose]: Failing request osu.Game.Online.API.Requests.ListChannelsRequest (System.Net.WebException: User not logged in)
2023-01-06 01:51:51 [verbose]: Failing request osu.Game.Online.API.Requests.ListChannelsRequest (System.Net.WebException: User not logged in)
2023-01-06 01:51:51 [verbose]: Failing request osu.Game.Online.API.Requests.ListChannelsRequest (System.Net.WebException: User not logged in)
2023-01-06 01:51:51 [verbose]: Failing request osu.Game.Online.API.Requests.ListChannelsRequest (System.Net.WebException: User not logged in)
...
```</div>
@frenzibyte frenzibyte added type:online priority:1 Very important. Feels bad without fix. Affects the majority of users. labels Jan 7, 2023
@ppy-sentryintegration
Copy link

Sentry issue: OSU-4V

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
priority:1 Very important. Feels bad without fix. Affects the majority of users. type:online
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants