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

Fix crash when clicking osu! logo in song select immediately after exiting #26437

Merged
merged 3 commits into from
Jan 9, 2024

Conversation

bdach
Copy link
Collaborator

@bdach bdach commented Jan 8, 2024

Closes #26415.

The crash report with incomplete log was backwards, the exit comes first. Sentry events and the reproducing test in 8a87301 confirm this.

bdach added 2 commits January 8, 2024 21:34
…iting

Closes ppy#26415.

The crash report with incomplete log was backwards, the exit comes
first. Sentry events and the reproducing test in
8a87301 confirm this.
@Joehuu
Copy link
Member

Joehuu commented Jan 9, 2024

Similar thing happens on multiplayer/playlists:

[runtime] 2024-01-09 00:21:52 [error]: An unhandled error has occurred.
[runtime] 2024-01-09 00:21:52 [error]: osu.Framework.Screens.ScreenStack+ScreenNotCurrentException: Cannot perform Exit on a non-current screen.
[runtime] 2024-01-09 00:21:52 [error]: at osu.Framework.Screens.ScreenStack.Exit(IScreen source)
[runtime] 2024-01-09 00:21:52 [error]: at osu.Framework.Screens.ScreenExtensions.Exit(IScreen screen)
[runtime] 2024-01-09 00:21:52 [error]: at osu.Game.Screens.OnlinePlay.Multiplayer.MultiplayerMatchSongSelect.SelectItem(PlaylistItem item) in /Users/joseph/Documents/GitHub/osu/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerMatchSongSelect.cs:line 116
[runtime] 2024-01-09 00:21:52 [error]: at osu.Game.Screens.OnlinePlay.OnlinePlaySongSelect.OnStart() in /Users/joseph/Documents/GitHub/osu/osu.Game/Screens/OnlinePlay/OnlinePlaySongSelect.cs:line 144
[runtime] 2024-01-09 00:21:52 [error]: at osu.Game.Screens.Select.SongSelect.FinaliseSelection(BeatmapInfo beatmapInfo, RulesetInfo ruleset, Action customStartAction) in /Users/joseph/Documents/GitHub/osu/osu.Game/Screens/Select/SongSelect.cs:line 484
[runtime] 2024-01-09 00:21:52 [error]: at osu.Game.Screens.Select.SongSelect.<LogoArriving>b__104_0() in /Users/joseph/Documents/GitHub/osu/osu.Game/Screens/Select/SongSelect.cs:line 663
[runtime] 2024-01-09 00:21:52 [error]: at osu.Game.Screens.Menu.OsuLogo.OnClick(ClickEvent e) in /Users/joseph/Documents/GitHub/osu/osu.Game/Screens/Menu/OsuLogo.cs:line 395
[runtime] 2024-01-09 00:21:52 [error]: at System.Linq.Enumerable.TryGetFirst[TSource](IEnumerable`1 source, Func`2 predicate, Boolean& found)
[runtime] 2024-01-09 00:21:52 [error]: at osu.Framework.Input.ButtonEventManager`1.PropagateButtonEvent(IEnumerable`1 drawables, UIEvent e)
[runtime] 2024-01-09 00:21:52 [error]: at osu.Framework.Input.MouseButtonEventManager.handleClick(InputState state, List`1 targets)
[runtime] 2024-01-09 00:21:52 [error]: at osu.Framework.Input.MouseButtonEventManager.HandleButtonUp(InputState state, List`1 targets)
[runtime] 2024-01-09 00:21:52 [error]: at osu.Framework.Input.ButtonEventManager`1.handleButtonUp(InputState state)
[runtime] 2024-01-09 00:21:52 [error]: at osu.Framework.Input.InputManager.HandleMouseButtonStateChange(ButtonStateChangeEvent`1 e)
[runtime] 2024-01-09 00:21:52 [error]: at osu.Framework.Input.UserInputManager.HandleInputStateChange(InputStateChangeEvent inputStateChange)
[runtime] 2024-01-09 00:21:52 [error]: at osu.Framework.Input.StateChanges.ButtonInput`1.Apply(InputState state, IInputStateChangeHandler handler)
[runtime] 2024-01-09 00:21:52 [error]: at osu.Framework.Input.InputManager.Update()
[runtime] 2024-01-09 00:21:52 [error]: at osu.Framework.Input.PassThroughInputManager.Update()
[runtime] 2024-01-09 00:21:52 [error]: at osu.Framework.Graphics.Drawable.UpdateSubTree()
[runtime] 2024-01-09 00:21:52 [error]: at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
[runtime] 2024-01-09 00:21:52 [error]: at osu.Framework.Platform.GameHost.UpdateFrame()
[runtime] 2024-01-09 00:21:52 [error]: at osu.Framework.Threading.GameThread.processFrame()
[runtime] 2024-01-09 00:21:52 [verbose]: Unhandled exception has been denied .

@peppy peppy self-requested a review January 9, 2024 03:59
@peppy
Copy link
Member

peppy commented Jan 9, 2024

Based on this happening in more places, it almost feels like the call of OnStart should be checked rather than handling in each overridden implementation.. maybe in FinaliseSelection? Should we ever be finalising when the screen isn't currently?

@peppy peppy merged commit 8324b75 into ppy:master Jan 9, 2024
15 of 17 checks passed
@bdach bdach deleted the song-select-logo-crash branch January 23, 2024 22:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Crash when starting beatmap by clicking osu! logo and immediately canceling the start
3 participants