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

Editor crash with buggy slider repeats #20876

Closed
m-sama opened this issue Oct 23, 2022 · 13 comments
Closed

Editor crash with buggy slider repeats #20876

m-sama opened this issue Oct 23, 2022 · 13 comments

Comments

@m-sama
Copy link

m-sama commented Oct 23, 2022

Type

Crash to desktop

Bug description

Change slider velocity, adjust length, and add slider repeat will result in crash

osu!lazer did not generate any logs
Event Viewer log provided

Screenshots or videos

osu._xpaPjRS2mE.mp4

Version

2022.1022.0-lazer

Logs

Log Name: Application
Source: .NET Runtime
Date: 10/22/2022 8:01:51 PM
Event ID: 1026
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: DESKTOP-16TONKH
Description:
Application: osu!.exe
CoreCLR Version: 6.0.222.6406
.NET Version: 6.0.2
Description: The process was terminated due to an unhandled exception.
Exception Info: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at System.Collections.Generic.List`1.get_Item(Int32 index)
at osu.Game.Rulesets.Osu.Objects.Slider.UpdateNestedSamples()
at osu.Game.Rulesets.Osu.Objects.Slider.CreateNestedHitObjects(CancellationToken cancellationToken)
at osu.Game.Rulesets.Objects.HitObject.ApplyDefaults(ControlPointInfo controlPointInfo, IBeatmapDifficultyInfo difficulty, CancellationToken cancellationToken)
at osu.Game.Screens.Edit.EditorBeatmap.UpdateState()
at osu.Game.Screens.Edit.EditorBeatmap.Update()
at osu.Framework.Graphics.Drawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Platform.GameHost.UpdateFrame()
at osu.Framework.Threading.GameThread.processFrame()
--- End of stack trace from previous location ---
at osu.Framework.Platform.GameHost.<>c__DisplayClass133_0.b__0()
at osu.Framework.Threading.ScheduledDelegate.RunTaskInternal()
at osu.Framework.Threading.Scheduler.Update()
at osu.Framework.Threading.GameThread.processFrame()
at osu.Framework.Threading.GameThread.RunSingleFrame()
at osu.Framework.Platform.ThreadRunner.RunMainLoop()
at osu.Framework.Platform.GameHost.windowUpdate()
at osu.Framework.Platform.SDL2DesktopWindow.Run()
at osu.Framework.Platform.GameHost.Run(Game game)
at osu.Desktop.Program.Main(String[] args)

Event Xml:



1026
0
2
0
0
0x80000000000000

123024


Application
DESKTOP-16TONKH



Application: osu!.exe
CoreCLR Version: 6.0.222.6406
.NET Version: 6.0.2
Description: The process was terminated due to an unhandled exception.
Exception Info: System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection. (Parameter 'index')
at System.Collections.Generic.List`1.get_Item(Int32 index)
at osu.Game.Rulesets.Osu.Objects.Slider.UpdateNestedSamples()
at osu.Game.Rulesets.Osu.Objects.Slider.CreateNestedHitObjects(CancellationToken cancellationToken)
at osu.Game.Rulesets.Objects.HitObject.ApplyDefaults(ControlPointInfo controlPointInfo, IBeatmapDifficultyInfo difficulty, CancellationToken cancellationToken)
at osu.Game.Screens.Edit.EditorBeatmap.UpdateState()
at osu.Game.Screens.Edit.EditorBeatmap.Update()
at osu.Framework.Graphics.Drawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
at osu.Framework.Platform.GameHost.UpdateFrame()
at osu.Framework.Threading.GameThread.processFrame()
--- End of stack trace from previous location ---
at osu.Framework.Platform.GameHost.<>c__DisplayClass133_0.<abortExecutionFromException>b__0()
at osu.Framework.Threading.ScheduledDelegate.RunTaskInternal()
at osu.Framework.Threading.Scheduler.Update()
at osu.Framework.Threading.GameThread.processFrame()
at osu.Framework.Threading.GameThread.RunSingleFrame()
at osu.Framework.Platform.ThreadRunner.RunMainLoop()
at osu.Framework.Platform.GameHost.windowUpdate()
at osu.Framework.Platform.SDL2DesktopWindow.Run()
at osu.Framework.Platform.GameHost.Run(Game game)
at osu.Desktop.Program.Main(String[] args)


@ax-ie

This comment was marked as spam.

@ax-ie

This comment was marked as off-topic.

@ppy-sentryintegration
Copy link

Sentry issue: OSU-8N

@peppy
Copy link
Member

peppy commented Oct 24, 2022

@m-sama I can't seem to reproduce this. Specifically, after changing the velocity you are somehow able to make the slider zero length, which should not be possible.

Could you please either provide the beatmap, or share the timing settings you have to make this happen?

@ax-ie
Copy link

ax-ie commented Oct 24, 2022

@m-sama I can't seem to reproduce this. Specifically, after changing the velocity you are somehow able to make the slider zero length, which should not be possible.

Could you please either provide the beatmap, or share the timing settings you have to make this happen?

I can, let me explain use 1/4 snap then make a slider with the end point just barely inside the slider whew you can change velocity then move it inwards all timings work

I think this can be fixed at which point repeats get calculated as after debugging repeats go to 2.147483647 which means that repeats at some point go way to large.

@Trung0246
Copy link

@m-sama I can't seem to reproduce this. Specifically, after changing the velocity you are somehow able to make the slider zero length, which should not be possible.

Could you please either provide the beatmap, or share the timing settings you have to make this happen?

Also followed the instruction and reliably replicate the bug.

Weird - Crash bug (Trung0246).zip

Just rename .zip to .osz

@peppy
Copy link
Member

peppy commented Oct 27, 2022

@Trung0246 I've tried to reproduce using your example beatmap but can't seem to:

osu.2022-10-27.at.05.07.28.mp4

Can you explain where I'm going wrong?

@Trung0246
Copy link

Trung0246 commented Oct 27, 2022

@Trung0246 I've tried to reproduce using your example beatmap but can't seem to:

osu.2022-10-27.at.05.07.28.mp4
Can you explain where I'm going wrong?

@peppy Have to hold shift when dragging the slider end node, something like this.

osu._jKAsg54pNg.mp4

Ignore the sandboxie popup, it just that I like games to run in sanboxed environment (something like firejail).

@Trung0246
Copy link

Just noticed there's a relevant issue #10959

@peppy
Copy link
Member

peppy commented Oct 28, 2022

Thanks, I completely overlooked that as it wasn't obvious that it was a requirement.

@peppy
Copy link
Member

peppy commented Oct 28, 2022

This may be "fixed" on master due to #20828. I don't think shift-dragging a slider on the playfield should have changed anything in the first place. Can you explain how shift is changing anything here, because for me it does nothing (even without #20828 holding shift does not trigger the issue).

@Trung0246
Copy link

This may be "fixed" on master due to #20828. I don't think shift-dragging a slider on the playfield should have changed anything in the first place. Can you explain how shift is changing anything here, because for me it does nothing (even without #20828 holding shift does not trigger the issue).

Huh weird does hold shift then drag the slider end does not cause zero length on your end?

@peppy
Copy link
Member

peppy commented Oct 28, 2022

I can reproduce on the latest release without holding shift. I'm not sure which change since the release has fixed the issue, but I can no longer reproduce on master.

What I'll do is close this issue for now, but please comment / reopen after the next release if you find a way to still reproduce the issue.

@peppy peppy closed this as completed Oct 28, 2022
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

5 participants