Browse Source

Skip extracted files in migration if bad timestamp or no access (#15112)

Tim Eisele 4 days ago
parent
commit
7a1c1cd342
1 changed files with 24 additions and 0 deletions
  1. 24 0
      Jellyfin.Server/Migrations/Routines/MoveExtractedFiles.cs

+ 24 - 0
Jellyfin.Server/Migrations/Routines/MoveExtractedFiles.cs

@@ -224,6 +224,18 @@ public class MoveExtractedFiles : IAsyncMigrationRoutine
 
                 return null;
             }
+            catch (UnauthorizedAccessException e)
+            {
+                _logger.LogDebug("Skipping subtitle at index {Index} for {Path}: {Exception}", attachmentStreamIndex, mediaPath, e.Message);
+
+                return null;
+            }
+            catch (ArgumentOutOfRangeException e)
+            {
+                _logger.LogDebug("Skipping attachment at index {Index} for {Path}: {Exception}", attachmentStreamIndex, mediaPath, e.Message);
+
+                return null;
+            }
 
             filename = (mediaPath + attachmentStreamIndex.ToString(CultureInfo.InvariantCulture) + "_" + date.Value.Ticks.ToString(CultureInfo.InvariantCulture)).GetMD5().ToString("D", CultureInfo.InvariantCulture);
         }
@@ -263,6 +275,18 @@ public class MoveExtractedFiles : IAsyncMigrationRoutine
         {
             date = File.GetLastWriteTimeUtc(path);
         }
+        catch (ArgumentOutOfRangeException e)
+        {
+            _logger.LogDebug("Skipping subtitle at index {Index} for {Path}: {Exception}", streamIndex, path, e.Message);
+
+            return null;
+        }
+        catch (UnauthorizedAccessException e)
+        {
+            _logger.LogDebug("Skipping subtitle at index {Index} for {Path}: {Exception}", streamIndex, path, e.Message);
+
+            return null;
+        }
         catch (IOException e)
         {
             _logger.LogDebug("Skipping subtitle at index {Index} for {Path}: {Exception}", streamIndex, path, e.Message);