ppy / osu

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

"Score import failed" When downloading replay #30203

Closed Slim-3 closed 1 week ago

Slim-3 commented 3 weeks ago

Type

Game behaviour

Bug description

Attempting to download this replay results in error.

Screenshots or videos

image

Version

2024.1009.1

Logs

compressed-logs.zip

bdach commented 3 weeks ago

Relevant line from log:

[database] 2024-10-11 08:10:33 [verbose]: Score 'solo-replay-osu_137_2662968831.osr' failed to import: no corresponding beatmap with the hash '794b005ae3fdcc845b11cc3b2006a163' could be found.

Okay, so let's download the beatmap and see the md5 of the .osu file:

$ md5sum 'Marta - The SMRPG Song (Level-Up) [Normal].osu'
ba0074806a2c930fb018e5d825f828b3  Marta - The SMRPG Song (Level-Up) [Normal].osu

Uhhhhhhh... what?

Alright, let's go to data.ppy.sh and check the hash there?

$ md5sum md5sum 2024_08_01_osu_files/137.osu 
ba0074806a2c930fb018e5d825f828b3  2024_08_01_osu_files/137.osu

Uh. Then let's try the April dump?

$ md5sum 2024_04_04_osu_files/137.osu      
794b005ae3fdcc845b11cc3b2006a163  2024_04_04_osu_files/137.osu

Uhhhhhhhhhhhhhhhhh. Alright? Let's try comparing the two then?

diff --git a/beatmaps/137.osu b/home/dachb/Downloads/52 Marta - The SMRPG Song/Marta - The SMRPG Song (Level-Up) [Normal].osu
index c021c2c..c1758ca 100644
--- a/beatmaps/137.osu
+++ b/home/dachb/Downloads/52 Marta - The SMRPG Song/Marta - The SMRPG Song (Level-Up) [Normal].osu     
@@ -9,6 +9,8 @@ Title:The SMRPG Song
 Artist:Marta
 Creator:Level-Up
 Version:Normal
+BeatmapID:137
+BeatmapSetID:52

 [Difficulty]
 HPDrainRate:5

I have no idea how this can happen.

I recall that @peppy ran a process that was supposed to fix this sort of thing on low ID beatmap as a test, but that was in June as far as I can tell, and this score was set in April...? And we noticed that the change broke things and rolled it back...?

smoogipoo commented 3 weeks ago

Adding onto the above because I also briefly looked into this one...

Is there a difference between how replays are downloaded between lazer and stable? I searched in osu-web and couldn't follow the code. I know that for stable it has to rebuild the replay headers which is probably why other replays work (if they do - I could be wrong), but I was under the impression that for lazer it would just download from S3 directly. Is that not the case? Does it trim the header for lazer replays too? Otherwise, we also have to update every lazer replay if maps get hax-submitted or fixed by some other means.

bdach commented 3 weeks ago

I know that for stable it has to rebuild the replay headers which is probably why other replays work (if they do - I could be wrong), but I was under the impression that for lazer it would just download from S3 directly. Is that not the case?

That is my understanding yes. See also: https://github.com/ppy/osu/issues/29817#issuecomment-2343513794

bdach commented 1 week ago

Duplicate of https://github.com/ppy/osu-web/issues/11551 I guess