itdelatrisu / opsu

opsu! ~ an open-source osu! client
https://itdelatrisu.github.io/opsu/
GNU General Public License v3.0
761 stars 125 forks source link

Wrong stack leniency calculations, game falls into infinite loop at the beginning of TheFatRat - Mayday #401

Open Wieku opened 6 years ago

Wieku commented 6 years ago

Opsu! 0.16.1 has some problems with this 2B map: https://osu.ppy.sh/beatmapsets/756794#osu/1605148

Just after few seconds game falls into (probably) infinite loop in main thread, because game just freezes without any thrown exception: https://img.wieku.me/18/2018-06-11_17-47-48.png

yugecin commented 6 years ago

This only happens with auto mod enabled, right?

Hitobject 5's endtime is the same as the starttime of hitobject 6 causing the t (last) parameter of following line to be Infinity because of division by zero, making the autopoint located at (-Infinity, Infinity). At the end the game is kind of stuck at drawing the cursortrail because it's trying to draw cursortrails all the way to position (-2147483648, 2147483647) https://github.com/itdelatrisu/opsu/blob/081e731d0cc7a9b40765b188867f555bbc4eb688/src/itdelatrisu/opsu/states/Game.java#L470

Wieku commented 6 years ago

Yes, this happens only in automod.

And i just found that stack leniency calculations are wrong for this map: opsu: https://img.wieku.me/18/screenshot_20180611_214301.png osu: https://img.wieku.me/18/screenshot001osu.png danser: https://img.wieku.me/18/1528746541477875300.png