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

osu! Editor crash #31186

Open
FeellsBadSkillz opened this issue Dec 18, 2024 · 1 comment · May be fixed by #31306
Open

osu! Editor crash #31186

FeellsBadSkillz opened this issue Dec 18, 2024 · 1 comment · May be fixed by #31306

Comments

@FeellsBadSkillz
Copy link

FeellsBadSkillz commented Dec 18, 2024

Type

Crash to desktop

Bug description

By opening on editor this map scrolling on the time line does result a crash on desktop without any error.

How to reproduce it:

  • Open on the editor the map
  • Scroll on the timeline
  • Hard freeze, with conseguence of a quit of osu! lazer

Screenshots or videos

Cannot upload video on github so have a yt https://youtu.be/dqXRClm4duQ

Version

2024.1208.0-lazer

Logs

compressed-logs.zip

@ppy-sentryintegration
Copy link

Sentry issue: OSU-1MZV

@bdach bdach self-assigned this Dec 27, 2024
bdach added a commit to bdach/osu that referenced this issue Dec 27, 2024
…ck distance is zero

RFC. This closes ppy#31186.

To explain why: The issue occurs on
https://osu.ppy.sh/beatmapsets/594828#osu/1258033, specifically on the
slider at time 128604. The failure site is

	https://github.com/ppy/osu/blob/fa0d2f4af22fb9319e2a8773bf635368d86360be/osu.Game.Rulesets.Osu/Edit/Blueprints/Sliders/SliderCircleOverlay.cs#L65-L66

wherein `LastRepeat` is `null`, even though the slider's `RepeatCount`
is 1 and thus `SpanCount` is 2.

In this case, `SliderEventGenerator` is given a non-zero `tickDistance`
but a zero `length`. The former is clamped to the latter:

	https://github.com/ppy/osu/blob/fa0d2f4af22fb9319e2a8773bf635368d86360be/osu.Game/Rulesets/Objects/SliderEventGenerator.cs#L34

Because of this, a whole block of code pertaining to tick generation
gets turned off, because of zero tick spacing - however, that block also
includes within it *repeat* generation, for seemingly very little reason
whatsoever:

	https://github.com/ppy/osu/blob/fa0d2f4af22fb9319e2a8773bf635368d86360be/osu.Game/Rulesets/Objects/SliderEventGenerator.cs#L47-L77

While a zero tick distance would indeed cause `generateTicks()` to loop
forever, it should have absolutely no effect on repeats.

While this *is* ultimately an aspire-tier bug caused by people pushing
things to limits, I do believe that in this case a fix is warranted
because of how hard the current behaviour violates invariants. I do not
like the possibility of having a slider with multiple spans and no
repeats.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants