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

Classic scores set on some beatmap appear to have its total score heavily inflated. #29772

Open
DarkbitNetwork opened this issue Sep 7, 2024 · 11 comments

Comments

@DarkbitNetwork
Copy link

Type

Game behaviour

Bug description

For some reason, this beatmap seems to have all classic mod plays set on it to be heavily inflated. The top 4 have total scores that are higher than what should have been possible in lazer. Every other classic mod score also are affected though a bit less extreme.
This bug can also be seen on the website.

However, it seems like non-classic lazer plays are unaffected. I don't know if scores with classic mod set on lazer are also affected by this bug.

A downloaded replay of the inflated score seems to fix the total score though.

Screenshots or videos

Top 4 have a total score that's higher than the expected limit:
1what the heck

The downloaded replay of a top 1 score:
Fixed

Version

2024.906.2-lazer

Logs

compressed-logs.zip

@bdach
Copy link
Collaborator

bdach commented Sep 11, 2024

A downloaded replay of the inflated score seems to fix the total score though.

This is rather worrying because in theory the score conversion process client-side and server-side should be the exact same process executing the exact same code. #29813 is another case of this.

@peppy can you please check on the specific version of the osu.Game package used by the osu-queue-score-statistics stable score import job? I worry that it might not contain some of the scoring conversion fixes that I've done at the start of this year.

@peppy
Copy link
Member

peppy commented Sep 11, 2024

@bdach pppy/osu-queue-score-statistics:2024.706.0, last restarted 49 days ago. Let me know if you need more information.

https://hub.docker.com/layers/pppy/osu-queue-score-statistics/2024.706.0/images/sha256-a621c7af15fa8b4b454599ce34fed2d3915d0225b70f08611aaee78e102de253?context=explore
https://github.com/ppy/osu-queue-score-statistics/blob/dafc9b4b39c7e205c768d0fb7b7324f70aa1e54f/osu.Server.Queues.ScoreStatisticsProcessor/osu.Server.Queues.ScoreStatisticsProcessor.csproj (in theory)

This is specifically the high score importer, FWIW. The non-high score importer is older, sitting on 2024.312.0 (probably should be bumped).

@bdach
Copy link
Collaborator

bdach commented Sep 11, 2024

Okay... then maybe it's the other end? Where's osu-difficulty-calculator at, specifically the job for computing scoring attributes? (I believe that might be a separate process from diffcalc, but not sure)

@bdach
Copy link
Collaborator

bdach commented Sep 11, 2024

That cannot be true, scoring attributes did not exist in 2022.

I am asking about scoring attributes specifically, e.g. whatever it is that is populating osu_beatmap_scoring_attribs for new ranked maps. The thing from ppy/osu-difficulty-calculator#224.

@peppy
Copy link
Member

peppy commented Sep 11, 2024

This is what's running on kubernetes, if it's helpful:

iTerm2 2024-09-11 at 11 21 22

@bdach
Copy link
Collaborator

bdach commented Sep 11, 2024

Hmm. latest is https://hub.docker.com/layers/pppy/osu-queue-beatmap-processor/latest/images/sha256-b146bf6bfcd7ec6204aa9d7c8ff98f0175a5649c03e86738e5ef80987e87c005?context=explore which is dated Dec 18, so probably somewhere at ppy/osu-difficulty-calculator@b8fa416. Which is pretty old and possibly causing this. The theory would be that while we did deploys of scoring attribute changes after my fixes previously, the processor got forgotten and as such rolling scoring attribute updates are using a stale revision. I probably should have specifically reminded about that...

One last thing: what does

SELECT * FROM `osu_beatmap_scoring_attribs` WHERE `beatmap_id` IN (4713870, 1593298) AND `mode` = 0;

spit out? I'll use the output of that to crosscheck scoring attributes and see if that theory checks out.

The good slash bad news is that if it is that, we have all the means to correct this, it'll just take time...

  1. Update the processor so that it's using newest game packages
  2. Recalculate all beatmaps' scoring attributes again to cover the gap that was using old code
  3. Reverify all scores

Maybe it'd take less time if we could perform steps (2) and (3) selectively but I'm not currently sure we have the means to do that. (3) maybe could be done selectively, if we can conclusively somehow get a known-good starting score ID.

@peppy
Copy link
Member

peppy commented Sep 27, 2024

Sorry, missed this.

root@db-master:osu> SELECT * FROM `osu_beatmap_scoring_attribs` WHERE `beatmap_id` IN (4713870, 1593298) AND `mode` = 0;;
+------------+------+-----------------------+--------------------+--------------------------+--------------------+-----------+
| beatmap_id | mode | legacy_accuracy_score | legacy_combo_score | legacy_bonus_score_ratio | legacy_bonus_score | max_combo |
+------------+------+-----------------------+--------------------+--------------------------+--------------------+-----------+
| 1593298    | 0    | 283440                | 25738656           | 0.0498507                | 33500              | 1198      |
| 4713870    | 0    | 383580                | 48484032           | 0.0473684                | 11400              | 1725      |
+------------+------+-----------------------+--------------------+--------------------------+--------------------+-----------+

2 rows in set

@bdach
Copy link
Collaborator

bdach commented Sep 27, 2024

Yeah these look wrong, legacy_combo_score to be precise. It should be

beatmap_id legacy_combo_score
1593298 32173320
4713870 60605040

And the values in the database match values from ppy/osu@2023.1218.0, which is what ppy/osu-difficulty-calculator@b8fa416 specifies, which is where pppy/osu-queue-beatmap-processor:latest seems to be at. So circumstantial evidence would appear to confirm the theory above.

Kinda thinking that maybe it's best to do the pp deploy first (ppy/osu-infrastructure#30) and only then come back to this. Chances are osu-difficulty-calculator will have to be deployed as part of that anyway, so at the least doing so would have the effect of stopping the bleeding on this. Retroactive corrective action can be taken later.

@DarkbitNetwork
Copy link
Author

Decided to check the beatmap again post-recalculation. Doesn't seem to be fixed though.
not fixed

@bdach
Copy link
Collaborator

bdach commented Nov 11, 2024

If you'll go look at the deploy checklist linked above you'll see that the relevant item for this issue is not yet checked off. So it's not exactly expected to be fixed yet.

@peppy peppy self-assigned this Nov 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants