1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-22 03:27:24 +08:00
Commit Graph

1396 Commits

Author SHA1 Message Date
Dean Herbert
99e55bb9c0 Add logging and Debug.Fail on detached beatmap detection 2023-06-28 12:21:05 +09:00
Dean Herbert
8e80e2fa32 Fix incorrect realm copy logic when a beatmap becomes detached from its set
The code here was assuming that if the beatmap which is having changes
copied across does not exist within the `BeatmapSet.Beatmaps` list, it
was not yet persisted to realm.

In some edge case, it can happen that the beatmap *is* persisted to
realm but not correctly attached to the beatmap set. I don't yet know
how this occurs, but it has caused loss of data for at least two users.

The fix here is to check realm-wide for the beatmap (using its primary
key) rather than only in the list. We then handle the scenario where the
beatmap needs to be reattached to the set as a seprate step.

---

This does raise others questions like "are we even structuring this
correctly? couldn't a single beatmap exist in two different sets?"

Maybe, but let's deal with that if/when it comes up.
2023-06-27 18:20:01 +09:00
Dean Herbert
df5b389629 Manual fixes to reduce warnings to zero 2023-06-24 01:52:53 +09:00
Dean Herbert
0ab0c52ad5 Automated pass 2023-06-24 01:00:03 +09:00
Dean Herbert
1f17f416a4 Force migration of old-new standardised scores to run once more 2023-06-16 14:04:18 +09:00
Dean Herbert
94b7de4b3f Fix old-new standardised score conversion missing some scores due to not rounding correctly 2023-06-16 14:01:56 +09:00
Bartłomiej Dach
51b5a0863f
Apply migration to new standardised score on normal reimport too 2023-06-15 21:53:15 +02:00
Dean Herbert
d83bf02923
Fix thing 2023-06-15 21:43:41 +02:00
Bartłomiej Dach
6205864c62
Fix score migration not considering mod multipliers 2023-06-13 19:00:13 +02:00
Dean Herbert
422e87f0ec Fix weird usings 2023-06-13 05:30:12 +09:00
Dean Herbert
c1b0c60e79 Ensure all misses are dequeued 2023-06-13 05:24:04 +09:00
Dean Herbert
3304e41a30 Add more commenting 2023-06-13 05:20:29 +09:00
Dean Herbert
afb5a9243a
Fix typo
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-06-13 05:13:22 +09:00
Dean Herbert
e9fb1f8932 Avoid tracking hit events altogether during migration 2023-06-13 02:15:41 +09:00
Dean Herbert
385f6dbd84 Move local classes to their rightful location 2023-06-13 02:12:23 +09:00
Dean Herbert
87520ae400 Avoid overhead from retrieving MaxCombo inside loop from realm 2023-06-13 02:05:00 +09:00
Dean Herbert
0916ae1671 Add basic profiling output of realm migrations 2023-06-13 01:57:41 +09:00
Dean Herbert
0e9576acfb Remove logging and catch any kind of errors 2023-06-13 01:40:43 +09:00
Dean Herbert
d19f8997fc Account for scores which don't have correct maximum statistics populated 2023-06-13 01:40:43 +09:00
Dean Herbert
f30c1a564f Add basic setup for score migration 2023-06-13 01:40:43 +09:00
Bartłomiej Dach
11694f35fe
Apply NRT in MemoryCachingComponent subclasses too 2023-06-09 13:47:35 +02:00
Dean Herbert
4685ba83e1 Apply NRT to MemoryCachingComponent classes 2023-06-09 19:00:05 +09:00
Bartłomiej Dach
ca25ac446b
Be slightly more specific with error message 2023-06-09 11:20:12 +02:00
Dean Herbert
53f935714e Inline binary reading to avoid polluting RealmAccess with nested class 2023-06-09 17:34:27 +09:00
Dean Herbert
a9071e7afd try-catch more 2023-06-09 17:33:59 +09:00
Dan Balasescu
67562a3856 Catch errors during score parsing 2023-06-09 14:35:29 +09:00
Dan Balasescu
facf7de053 Parse ScoreInfo.IsLegacyScore from replays 2023-06-08 21:38:10 +09:00
Bartłomiej Dach
1f4e79d79d
Merge pull request #23711 from timiimit/add-last-edit-time
Store timestamp of beatmap's last edit time in local database
2023-06-07 16:57:24 +02:00
Salman Ahmed
62cb6a98ca Remove redundant nullable suppression directives 2023-06-07 08:20:41 +03:00
Dean Herbert
e0e013cca1
Fix incorrect realm schema comment
Co-authored-by: timiimit <32331609+timiimit@users.noreply.github.com>
2023-06-06 22:17:05 +09:00
Dean Herbert
878cdb2ed3 Bump schema version 2023-06-06 15:11:37 +09:00
Dean Herbert
18eb15bfa5 Gracefully handle failures in cleaning up pending file deletions 2023-05-31 19:39:43 +09:00
Bartłomiej Dach
2e81cae201
Move comment to more correct place 2023-05-30 23:18:34 +02:00
Dean Herbert
a0be526266 Adjust realm backup procedure to hard fail if running out of attempts
Previously, if the backup procedure failed, startup would continue and
the user's realm database may be deleted. I think in such a fail case
I'd rather the game didn't startup so the user gets in touch (or reads
the log files themselves) rather than potentially losing data.
2023-05-30 13:04:34 +09:00
Dean Herbert
79694897be Ensure a potential exception from cleanupPendingDeletions doesn't mark realm corrupt
The whole restructure here is to move the nested call out of the
`try-catch`. I noticed this while looking at a corrupt database issue a
user reported (https://github.com/ppy/osu/discussions/23694).

It's not the first time we've seen a corrupt database error where the
"corrupt" version works just fine on a second attempt.

Maybe this isn't the issue and it's just a transitive file access violation
but it definitely feels like this should be fixed regardless.
2023-05-30 13:00:17 +09:00
Dan Balasescu
d2380bd840 Remove usages of [ExcludeFromDynamicCompile] 2023-05-08 18:12:56 +09:00
Bartłomiej Dach
510484011c
Mark exporter extensions as untranslatable 2023-05-06 19:42:28 +02:00
Bartłomiej Dach
3f63fd7f4d
Reorder increment to make progress update less weird 2023-05-06 19:39:52 +02:00
Bartłomiej Dach
bb17b684b0
Rename flag 2023-05-06 19:38:41 +02:00
Bartłomiej Dach
a56a5d563c
Unify error message wording 2023-05-06 19:38:05 +02:00
Bartłomiej Dach
3afe198d1d
Remove weird single-use private method 2023-05-06 19:34:22 +02:00
Bartłomiej Dach
e0823ffd03
Move lower and xmldoc GetFilename(TModel) 2023-05-06 19:29:08 +02:00
Bartłomiej Dach
5e64d25b2a
Make UserFileStorage readonly again 2023-05-06 19:26:51 +02:00
Dean Herbert
64d7e0d896 Rename outputStream variable to match base class 2023-05-07 00:24:30 +09:00
Dean Herbert
d2591368a6 More xmldoc fixes 2023-05-06 23:53:35 +09:00
Dean Herbert
0d095c4bb7 Remove non-Live pathway 2023-05-06 23:10:18 +09:00
Dean Herbert
e75ff33d62 Remove redundant xmldoc and reword some remaining 2023-05-06 23:10:09 +09:00
cdwcgt
71864fbb93
remove meanless comment 2023-05-05 21:29:06 +09:00
cdwcgt
4393e53b43
ExportToStream should be public 2023-05-05 21:28:43 +09:00
Dean Herbert
747f912af5 Fix incorrect cancellation logic 2023-05-05 21:08:01 +09:00