ppy / osu

rhythm is just a *click* away!
https://osu.ppy.sh
MIT License
15.49k stars 2.3k forks source link

Exiting a multiplayer game while a map is loading causes a visual glitch #29858

Open baerchen201 opened 2 months ago

baerchen201 commented 2 months ago

Type

Other

Bug description

When you try to leave a multiplayer match, a confirm dialog shows up. This dialog stays open, even when the host starts the game. If you confirm the exit while the map is loading, the screen will get messed up and not show anything. The game recovers upon returning to the main menu.

Screenshots or videos

vlcsnap-2024-09-13-02h40m21s110

https://youtu.be/vUMn_OfmbKM

Version

2024.906.2

Logs

l.zip Relevant logs: runtime, line 206

bdach commented 2 months ago

Line 206 is the server more or less correctly handling the weird state you managed to enter (although it is debatable whether the error should show). I'm more concerned with line 212:

2024-09-13 00:10:56 [error]: System.NullReferenceException: Object reference not set to an instance of an object.
2024-09-13 00:10:56 [error]: at osu.Game.Screens.OnlinePlay.Lounge.LoungeSubScreen.OnResuming(ScreenTransitionEvent e)
2024-09-13 00:10:56 [error]: at osu.Game.Screens.OnlinePlay.Multiplayer.MultiplayerLoungeSubScreen.OnResuming(ScreenTransitionEvent e)
2024-09-13 00:10:56 [error]: at osu.Game.Screens.OnlinePlay.OnlinePlayScreen.OnResuming(ScreenTransitionEvent e)
2024-09-13 00:10:56 [error]: at osu.Game.Screens.OnlinePlay.Multiplayer.Multiplayer.OnResuming(ScreenTransitionEvent e)
2024-09-13 00:10:56 [error]: at osu.Framework.Screens.ScreenStack.resumeFrom(IScreen source)
2024-09-13 00:10:56 [error]: at osu.Framework.Screens.ScreenStack.exitFrom(IScreen source, Boolean shouldFireExitEvent, Boolean shouldFireResumeEvent, IScreen destination)
2024-09-13 00:10:56 [error]: at osu.Framework.Screens.ScreenStack.Exit(IScreen source)
2024-09-13 00:10:56 [error]: at osu.Framework.Screens.ScreenExtensions.Exit(IScreen screen)
2024-09-13 00:10:56 [error]: at osu.Game.Screens.OnlinePlay.Multiplayer.MultiplayerPlayerLoader.<failAndBail>b__11_0()
2024-09-13 00:10:56 [error]: at osu.Framework.Threading.ScheduledDelegate.RunTaskInternal()
2024-09-13 00:10:56 [error]: at osu.Framework.Threading.Scheduler.Update()
2024-09-13 00:10:56 [error]: at osu.Framework.Graphics.Drawable.UpdateSubTree()
ppy-sentryintegration[bot] commented 2 months ago

Sentry issue: OSU-Q1C