2b399ec7ad
Merge branch 'master' into date-submitted-ranked
2022-07-20 18:36:57 +09:00
6357223341
Fix incorrect DI fetch and apply nullability to ModelDownloader
2022-07-19 20:06:34 +09:00
30daa0fd44
Add ranked and submitted date storage and filtering
2022-07-19 19:55:56 +09:00
17046b0553
Add basic handling of download failures
2022-07-19 19:01:23 +09:00
6ea380d649
Add new properties to BeatmapInfo
to track online hash and updates
2022-07-19 17:57:01 +09:00
51f91fe62e
Update naming
2022-07-18 16:17:20 +09:00
4e7156cee8
Store user country on databased scores
2022-07-16 06:39:05 +03:00
c8c79d2185
Standardise HasReplay
implementation (and remove from persisting to realm)
2022-07-15 16:14:21 +09:00
8820ea4006
Add last played date to BeatmapInfo
2022-07-13 16:36:43 +09:00
8b6665cb5b
Ensure initial beatmap processing is done inside the import transaction
2022-07-11 02:51:54 +09:00
0bc332e90b
Merge pull request #19029 from peppy/fix-skin-import-duplicate
...
Fix skins potentially being duplicated on batch import
2022-07-08 14:18:14 +09:00
c53dd4a703
Fix editor saving not updating BeatmapSetInfo
's hash
2022-07-08 02:33:14 +09:00
cf1da1dd18
Fix skins potentially being duplicated on batch import
...
Resolves https://github.com/ppy/osu/discussions/19024#discussioncomment-3099200
2022-07-07 22:39:07 +09:00
ac216d94a8
Fix transaction not being disposed
2022-07-07 18:15:38 +09:00
5197d0fa9e
Add automatic transaction handling to realm helper methods
2022-07-07 17:36:25 +09:00
a1b6ec60c8
Add statistics display for MemoryCachingComponent
s
...
Never sure if these are working as they should (or how well they are
working). This helps quite a bit.
2022-07-06 18:38:40 +09:00
33db508301
Add note regarding why the realmRetrievalLock
return is done on the async thread
2022-07-05 16:23:10 +09:00
5adec2c738
Ensure blocking restoration only completes after update callback work is completed
2022-07-05 14:39:14 +09:00
1b98936328
Rename realm ThreadLocal
to better convey what it's doing
...
Every time I looked at this code I have to re-learn what it's doing.
Changing these variable names should help quite a bit.
2022-07-05 13:38:25 +09:00
506409a9c4
Fix realm backup creation failing when run from RealmAccess
constructor
...
At the point of construction, we are not on the update thread, but it
doesn't really matter at this point because there's no other usages.
2022-07-04 16:45:23 +09:00
e28ee8bc7a
Count time spent upwards to display attempts correctly
2022-07-02 10:46:52 +03:00
93809a92d4
Fix clashing error messaging during realm block operations
2022-07-02 16:30:04 +09:00
4fd47b5fa0
Add more verbose logging to realm blocking process
2022-07-02 12:36:56 +09:00
3b1842a2c2
Merge pull request #18835 from peppy/beatmap-update-flow
...
Split out beatmap update tasks to `BeatmapUpdater` and invoke from editor save flow
2022-07-01 20:28:04 +09:00
447b496eff
Merge branch 'master' into realm-fix-async-write-after-disposal
2022-06-30 19:07:15 +09:00
2a73210865
Add xmldoc and update parameter naming for MemoryCachingComponent.Invalidate
flow
2022-06-30 17:17:06 +09:00
98938821e5
Merge branch 'master' into beatmap-update-flow
2022-06-30 16:44:17 +09:00
78d86fd3ff
Fix PerformWrite
not rolling back transaction on exception
2022-06-30 15:15:09 +09:00
7cb4e32c17
Add one more lock to appease CI
2022-06-29 22:45:19 +09:00
a3b4a515fc
Merge branch 'master' into realm-fix-async-write-after-disposal
2022-06-29 22:39:05 +09:00
32af4e41ea
Add back thread safety and locking as required
2022-06-29 20:56:01 +09:00
ecdb30d215
Fix one more case of collection modification during enumeration
...
https://sentry.ppy.sh/share/issue/a61c27b2a63a4a6aa80e75873f9d87ca/
2022-06-29 02:28:23 +09:00
e10ac45fd7
Remove probably redundant realmLock
...
As far as I can tell all accesses are safe due to update thread
guarantees. The only weird one may be async writes during a
`BlockAllOperations`, but the `Compact` loop should handle this quite
amicably.
2022-06-28 16:55:54 +09:00
396e7fc166
Merge pull request #18862 from peppy/empty-beatmap-file-fix-2
...
Fix second case of empty beatmaps being reported to sentry as errors
2022-06-27 20:37:57 +09:00
f355c3a3c9
Merge pull request #18864 from peppy/fix-realm-audio-track-test-fail
...
Centralise and harden editor-ready-for-use check
2022-06-27 19:42:49 +09:00
83982d258d
Throw immediately if attempting to WriteAsync
after disposed
2022-06-27 19:34:28 +09:00
c39c99bd43
Ensure all async writes are completed before realm is disposed
2022-06-27 19:21:05 +09:00
f6a61472c4
Fix occasional failure in realm test proceedings due to incorrect Debug.Assert
...
After a `BlockAllOperations`, the restoration of the `updateRealm`
instance is not instance. It is posted to a `SynchronizationContext`.
The assertion which has been removed in this commit was assuming it
would always be an immediate operation.
To ensure this works as expected, I've tracked the initialised state via
a new `bool`.
```csharp
System.TimeoutException : Attempting to block for migration took too long.
1) Host threw exception System.AggregateException: One or more errors occurred. (: )
---> NUnit.Framework.AssertionException: :
at osu.Framework.Logging.ThrowingTraceListener.Fail(String message1, String message2)
at System.Diagnostics.TraceInternal.Fail(String message, String detailMessage)
at System.Diagnostics.TraceInternal.TraceProvider.Fail(String message, String detailMessage)
at System.Diagnostics.Debug.Fail(String message, String detailMessage)
at osu.Game.Database.RealmAccess.BlockAllOperations() in /opt/buildagent/work/ecd860037212ac52/osu.Game/Database/RealmAccess.cs:line 813
at osu.Game.OsuGameBase.<>c__DisplayClass108_1.<Migrate>b__0() in /opt/buildagent/work/ecd860037212ac52/osu.Game/OsuGameBase.cs:line 449
at osu.Framework.Threading.ScheduledDelegate.RunTaskInternal()
at osu.Framework.Threading.Scheduler.Update()
at osu.Framework.Graphics.Drawable.UpdateSubTree()
at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
```
https://teamcity.ppy.sh/buildConfiguration/Osu_Build/322?hideProblemsFromDependencies=false&hideTestsFromDependencies=false&expandBuildTestsSection=true
2022-06-27 18:01:12 +09:00
01487a1185
Add assertion on realm re-fetch being not-null
2022-06-27 15:52:45 +09:00
da61d0547f
Include archive name in import log output
2022-06-27 15:24:25 +09:00
31a447fda0
Update parameter discards
2022-06-24 21:26:19 +09:00
30b3973c9f
Difficulty cache invalidation flow
2022-06-24 21:02:38 +09:00
26c5b59f6d
Replace usages of string.To{Lower,Upper}()
2022-06-24 11:57:45 +02:00
51268d0cc8
Throw on Wait
failure in a few remaining cases
2022-06-23 15:28:21 +09:00
7ef8b7df5f
Add timeout for all ManualResetEventSlim.Wait
invocations
...
Timeout values were taken as best-guesses of upper values we'd expect
from sane execution.
2022-06-23 14:46:00 +09:00
948c28f415
Fix collection modified during BlockAllOperations
if any subscriptions have been established
2022-06-22 20:34:05 +09:00
816fd338cb
Fix typo
2022-06-21 19:57:27 +09:00
f74b4ac277
Fix blocking overhead when calling WriteAsync
2022-06-21 17:15:25 +09:00
ba394f2831
Remove IPostsImports
interface (and move to IModelImporter
)
2022-06-20 18:53:48 +09:00
e732c5a2d7
Add PostImport
method matching PreImport
2022-06-20 18:40:23 +09:00