Browse Source

Skip invalid keyframe cache data (#15032)

Tim Eisele 1 week ago
parent
commit
f4a53209f4
1 changed files with 11 additions and 4 deletions
  1. 11 4
      Jellyfin.Server/Migrations/Routines/MigrateKeyframeData.cs

+ 11 - 4
Jellyfin.Server/Migrations/Routines/MigrateKeyframeData.cs

@@ -135,14 +135,21 @@ public class MigrateKeyframeData : IDatabaseMigrationRoutine
         return Path.Join(keyframeCachePath, prefix, filename);
     }
 
-    private static bool TryReadFromCache(string? cachePath, [NotNullWhen(true)] out MediaEncoding.Keyframes.KeyframeData? cachedResult)
+    private bool TryReadFromCache(string? cachePath, [NotNullWhen(true)] out MediaEncoding.Keyframes.KeyframeData? cachedResult)
     {
         if (File.Exists(cachePath))
         {
-            var bytes = File.ReadAllBytes(cachePath);
-            cachedResult = JsonSerializer.Deserialize<MediaEncoding.Keyframes.KeyframeData>(bytes, _jsonOptions);
+            try
+            {
+                var bytes = File.ReadAllBytes(cachePath);
+                cachedResult = JsonSerializer.Deserialize<MediaEncoding.Keyframes.KeyframeData>(bytes, _jsonOptions);
 
-            return cachedResult is not null;
+                return cachedResult is not null;
+            }
+            catch (JsonException jsonException)
+            {
+                _logger.LogWarning(jsonException, "Failed to read {Path}", cachePath);
+            }
         }
 
         cachedResult = null;