ppy / osu

rhythm is just a *click* away!
https://osu.ppy.sh
MIT License
15.05k stars 2.22k forks source link

Tried to change hp drain of taiko beatmap, instead it (appeared to have) deleted all the hit objects #28041

Open villuna opened 4 months ago

villuna commented 4 months ago

Type

Game behaviour

Bug description

I was editing a local beatmap that I had made on an existing beatmap set, and I had added two extra difficulties and went to change the hp drain. I did nothing but enter the editor, change the setting and exit the editor again, and for my highest difficulty it honest to god deleted all of the hit objects and reverted it to default hp drain (but kept the other stats the same). Interestingly the second highest difficulty was totally fine.

At the time, I had an empty difficulty in the set which I hadn't done anything with, so that could have also had an effect.

I've attached logs but note that after this happened I restarted osu once in a panicked attempt to see if that would fix it (it did not), so the most recent logs probably aren't relevant.

I couldn't get a video of it happening unfortunately but I've attached a screenshot of the beatmap set before (the diff had a different name and I hadn't made the other one) and after the incident. Not sure it'll be of much help but I had the screenshots on hand

Screenshots or videos

historical evidence autopsy report

Version

2024.412.1

Logs

compressed-logs.zip

bdach commented 4 months ago

Did you rename the difficulty as part of the save that deleted everything? Struggling to find a quick and plausible explanation how this can happen otherwise.

villuna commented 4 months ago

Unfortunately no, I had renamed it beforehand. The only change was to the HP drain. If it would help, I could also export and send the local beatmap set? I havent touched it since this happened so maybe it has clues

bdach commented 4 months ago

I guess you could but if it's just blank I dunno how much that's gonna do. Better than nothing though.

villuna commented 4 months ago

Ooh now this is interesting. I exported the osz, and to test if it's really empty I imported it on an osu install on another computer. But when I imported it, all the notes were there! This worked on both lazer and stable. So, it still looks empty on the original computer's lazer install, but if I export and import it, it gets its notes back and has the updated hp drain setting. Maybe it hasn't deleted the notes, it just thinks that they're not there for some reason.

Here is the export:

Sugimori Masakazu - Tsuikyuu _ Oitsumerarete (Vaf) (2).zip

bdach commented 4 months ago

So, it still looks empty on the original computer's lazer install, but if I export and import it, it gets its notes back

That's interesting... I suppose you've already overwritten the version of the map that was empty? If you haven't then a client.realm upload may be helpful to scope this down further. But this does look like it could have something to do with difficulty renaming, just maybe with a delayed effect.

villuna commented 4 months ago

No worries, I haven't touched the empty map yet. Here you go client.realm.zip

bdach commented 4 months ago

Well I can sort of see what happened to break it, but I'm not sure how it happened.

These are the hashes of the beatmap files in the database where the beatmap has gone missing:

broken-db

And these are the hashes of the beatmap files in the export:

0c93b4b9accac0ba70aad60667c314f73dd2cdf5c4b83f6a8d4ec37e3854b6d8  audio.mp3
7c485e2fdf4fb357b4c4e89ed4f09977ac484c78b09796e92319fd301d6d31f8  Sugimori Masakazu - Tsuikyuu ~ Oitsumerarete (Vaf) [Futsuu].osu
d5d96459d0360f1f2131bf54147a13c14d54a4a0dd6beb730f82a20b49a2bcc5  Sugimori Masakazu - Tsuikyuu ~ Oitsumerarete (Vaf) [Kantan].osu
7bb28dd323fc869acc6f58a686e2b24f01d4d5f989e3dd5cf39944d6c04cce12  Sugimori Masakazu - Tsuikyuu ~ Oitsumerarete (Vaf) [Muzukashii].osu
9301a5d8d94af7160d8726254183c7084bc16a4fcd80c0e0c907ef63454c74e9  Sugimori Masakazu - Tsuikyuu ~ Oitsumerarete (Vaf) [Objection!].osu
e269181b8987204b94eafbcaa4c88cad10af9c776e764b3a13f696966c825ca3  Sugimori Masakazu - Tsuikyuu ~ Oitsumerarete (Vaf) [Oni].osu
52a9075ee33c319d18630ad55f9ead34fe8abf2362c3eea6eee310d3e1f10049  Sugimori Masakazu - Tsuikyuu _ Oitsumerarete (Vaf) [villuna_s Muzukashii_].osu
d29571e728911ce9df1ff38d8ac32c8de069c8322b8900e8777cca2047339004  Sugimori Masakazu - Tsuikyuu _ Oitsumerarete (Vaf) [villuna_s Objection_].osu
41f1fde585f125cd22402f4bf44f1bf8caadd5825de7befc66aa944df0131435  Sugimori Masakazu - Tsuikyuu _ Oitsumerarete (Vaf) [villuna_s Oni_].osu
9fee7834f25fdd7bf427b1bd4b4a0501a3db7e2cc576f9d601af1f0d4a5450ec  y1FYWxy.jpeg

The only files that are matching are:

audio.mp3
Sugimori Masakazu - Tsuikyuu _ Oitsumerarete (Vaf) [villuna_s Objection_].osu
y1FYWxy.jpeg

The rest isn't matching. So I'd expect every single difficulty in this mapset other than that one to be broken.

If I import the actual online map and re-export via lazer, I get:

0c93b4b9accac0ba70aad60667c314f73dd2cdf5c4b83f6a8d4ec37e3854b6d8  audio.mp3
7c485e2fdf4fb357b4c4e89ed4f09977ac484c78b09796e92319fd301d6d31f8  Sugimori Masakazu - Tsuikyuu ~ Oitsumerarete (Vaf) [Futsuu].osu
d5d96459d0360f1f2131bf54147a13c14d54a4a0dd6beb730f82a20b49a2bcc5  Sugimori Masakazu - Tsuikyuu ~ Oitsumerarete (Vaf) [Kantan].osu
7bb28dd323fc869acc6f58a686e2b24f01d4d5f989e3dd5cf39944d6c04cce12  Sugimori Masakazu - Tsuikyuu ~ Oitsumerarete (Vaf) [Muzukashii].osu
9301a5d8d94af7160d8726254183c7084bc16a4fcd80c0e0c907ef63454c74e9  Sugimori Masakazu - Tsuikyuu ~ Oitsumerarete (Vaf) [Objection!].osu
e269181b8987204b94eafbcaa4c88cad10af9c776e764b3a13f696966c825ca3  Sugimori Masakazu - Tsuikyuu ~ Oitsumerarete (Vaf) [Oni].osu
9fee7834f25fdd7bf427b1bd4b4a0501a3db7e2cc576f9d601af1f0d4a5450ec  y1FYWxy.jpeg

which probably explains the online diffs mismatching (the exporter doesn't just move the files out, it re-encodes them, and the re-encode isn't going to be byte-for-byte, hence the changing SHAs). But it doesn't explain why the edited difficulties' hashes desynced.

In log I also see this:

2024-04-30 13:53:56 [verbose]: Invalidating working beatmap cache for Sugimori Masakazu - Tsuikyuu ~ Oitsumerarete (Vaf) [New Difficulty]
2024-04-30 13:53:56 [verbose]: Invalidating working beatmap cache for Sugimori Masakazu - Tsuikyuu ~ Oitsumerarete (Vaf) [Futsuu]
2024-04-30 13:53:56 [verbose]: Invalidating working beatmap cache for Sugimori Masakazu - Tsuikyuu ~ Oitsumerarete (Vaf) [Kantan]
2024-04-30 13:53:56 [verbose]: Invalidating working beatmap cache for Sugimori Masakazu - Tsuikyuu ~ Oitsumerarete (Vaf) [Muzukashii]
2024-04-30 13:53:56 [verbose]: Invalidating working beatmap cache for Sugimori Masakazu - Tsuikyuu ~ Oitsumerarete (Vaf) [Objection!]
2024-04-30 13:53:56 [verbose]: Invalidating working beatmap cache for Sugimori Masakazu - Tsuikyuu ~ Oitsumerarete (Vaf) [Oni]
2024-04-30 13:53:56 [verbose]: Invalidating working beatmap cache for Sugimori Masakazu - Tsuikyuu ~ Oitsumerarete (Vaf) [New Difficulty]

which makes me suspicious (why is New Difficulty there twice?)

I'm half hoping this could be something that is fixed by https://github.com/ppy/osu/pull/27997 but that may well be wishful thinking


@villuna Are you able to describe in more detail how these difficulties were created? In which order? Were they created one after another during one lazer session? When and how were they renamed?

villuna commented 4 months ago

Sure, they were made one after another in the same lazer session, like you said. I'm not sure I remember 100%, but i'm pretty sure i made my top difficulty first, then when that was finished i made my Oni. I think at that point was when i renamed the top diff to 'villuna's Objection!', just using the editor. Then I created the new difficulty but exited without doing anything with it. Finally, i changed the health drain settings and ran into the issue.

Although, the fact that there are two "New Difficulty" beatmaps gives me a thought. My mouse has an occasional double-clicking problem. The LMB switch sometimes triggers twice, so fast that there's almost no time at all between the two presses. I don't remember making two new difficulties but i wonder if my mouse clicked "make new difficulty/osu!taiko" twice really really quickly. That's just a guess though, i dont even know if thats possible.

bdach commented 4 months ago

I've tried a few things but I can't make this happen.

If you are able to somehow pinpoint how this can happen then it would be appreciated. At this stage I'm mostly just crossing my fingers that the aforementioned fix will have gotten this too...

cdwcgt commented 4 months ago

eh compressed-logs.zip Not sure if it's related but I might have had this problem too

I have used Lazer to make some beatmap modifications before, and I remember that this problem did not occur when exporting the beatmap to stable for uploading. This problem suddenly appeared one day. My log should have the error reported when it first appeared, but I'm not sure which day it was. I haven't checked it yet.

File size too big: 25 MB are allowed, 40 MB were attempted to upload.

catbox realm file and beatmap export

It is worth noting that I specially modified easy that adjusted HP and OD, but I completed and uploaded it in stable and uploaded.