1
0
mirror of https://github.com/ppy/osu.git synced 2026-05-20 00:20:21 +08:00
Commit Graph

5 Commits

  • Turn tests green, for a short while, maybe (#37218)
    ## [Rewrite `BackgroundMusicManager` to not run into framework
    breakage](https://github.com/ppy/osu/commit/622216d8911832c39fa4e126b2810e4e0f46cbf7)
    
    The attempted proper fix to this was
    https://github.com/ppy/osu-framework/pull/6727. Unfortunately when
    presented with [the framework
    bump](https://github.com/ppy/osu/pull/37217) with that change, CI says
    "you're stupid" and fails on some disposal idiocy that of course is
    undebuggable and irreproducible:
    
    The active test run was aborted. Reason: Test host process crashed :
    Unhandled exception. System.AggregateException: One or more errors
    occurred. (Object reference not set to an instance of an object.)
    ---> System.NullReferenceException: Object reference not set to an
    instance of an object.
    at osu.Framework.Audio.Sample.SampleChannelBass.Dispose(Boolean
    disposing)
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext
    executionContext, ContextCallback callback, Object state)
    	--- End of stack trace from previous location ---
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext
    executionContext, ContextCallback callback, Object state)
    at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task&
    currentTaskSlot, Thread threadPoolThread)
    	   --- End of inner exception stack trace ---
    	   at osu.Framework.Audio.AudioCollectionManager`1.UpdateChildren()
    	   at osu.Framework.Audio.AudioCollectionManager`1.UpdateChildren()
    	   at osu.Framework.Audio.AudioCollectionManager`1.UpdateChildren()
    	   at osu.Framework.Audio.AudioCollectionManager`1.UpdateChildren()
    	   at osu.Framework.Threading.AudioThread.OnExit()
    at osu.Framework.Threading.GameThread.setExitState(GameThreadState
    exitState)
    	   at osu.Framework.Threading.GameThread.RunSingleFrame()
    at osu.Framework.Threading.GameThread.<createThread>g__runWork|70_0()
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext
    executionContext, ContextCallback callback, Object state)
    	--- End of stack trace from previous location ---
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext
    executionContext, ContextCallback callback, Object state)
    
    
    (https://github.com/ppy/osu/actions/runs/24019928154/job/70046733058?pr=37217#step:5:119)
    
    I no longer have the energy for any of this shit.
    
    @nekodex would appreciate if you could check that I actually haven't
    broken anything with the bgm here. Seems okay to me in test scenes at
    least.
    
    ## [Apply lowest-effort maybe-fixing changes to a bunch of flaking
    tests](https://github.com/ppy/osu/commit/7bd3ca4adfcce5b90add11565a13f3fe9177ad5e)
    
    None of the failures are reproducible locally, of course. I'm tired of
    this. If anyone else wants to subject themselves to actually
    investigating any of these, by all means, godspeed and good luck.
  • Remove no longer needed API call mocking
    The online ID will be reset unconditionally after any local change is
    made to any beatmap. That behaviour no longer depends on online lookups
    succeeding or failing.
    
    This may change at a later date when beatmap submission is integrated
    into lazer - the idea is that online IDs would get re-populated on local
    beatmaps once they are submitted to web.
  • Add failing test case covering online ID reset on save
    This test scene passes at e58e1151f3 and
    fails at current master, due to an inadvertent regression caused by
    e72f103c17.
    
    As it turns out, the online lookup flow that was causing UI thread
    freezes when saving beatmaps in the editor, was also responsible for
    resetting the online ID of locally-modified beatmaps if online lookup
    failed.