Преглед на файлове

fix: in optimistic locking, key off table is locked (#15328)

evanreichard преди 1 месец
родител
ревизия
b5f0199a25
променени са 1 файла, в които са добавени 6 реда и са изтрити 2 реда
  1. 6 2
      src/Jellyfin.Database/Jellyfin.Database.Implementations/Locking/OptimisticLockBehavior.cs

+ 6 - 2
src/Jellyfin.Database/Jellyfin.Database.Implementations/Locking/OptimisticLockBehavior.cs

@@ -52,10 +52,14 @@ public class OptimisticLockBehavior : IEntityFrameworkCoreLockingBehavior
 
         _logger = logger;
         _writePolicy = Policy
-            .HandleInner<Exception>(e => e.Message.Contains("database is locked", StringComparison.InvariantCultureIgnoreCase))
+            .HandleInner<Exception>(e =>
+                e.Message.Contains("database is locked", StringComparison.InvariantCultureIgnoreCase) ||
+                e.Message.Contains("database table is locked", StringComparison.InvariantCultureIgnoreCase))
             .WaitAndRetry(sleepDurations.Length, backoffProvider, RetryHandle);
         _writeAsyncPolicy = Policy
-            .HandleInner<Exception>(e => e.Message.Contains("database is locked", StringComparison.InvariantCultureIgnoreCase))
+            .HandleInner<Exception>(e =>
+                e.Message.Contains("database is locked", StringComparison.InvariantCultureIgnoreCase) ||
+                e.Message.Contains("database table is locked", StringComparison.InvariantCultureIgnoreCase))
             .WaitAndRetryAsync(sleepDurations.Length, backoffProvider, RetryHandle);
 
         void RetryHandle(Exception exception, TimeSpan timespan, int retryNo, Context context)