2025-06-11, 02:00 AM
(This post was last modified: 2025-06-11, 02:00 AM by Jamie Chapman. Edited 1 time in total.)
I changed this post back from solved. Looks like the Optimistic setting helped a lot, but the database is still locking. Snip from the log showing just before the final failure. The first entry in this snip appears throughout the log during the scan media library run:
[2025-06-10 21:08:39.308 -04:00] [WRN] [54] Jellyfin.Database.Implementations.Locking.OptimisticLockBehavior: Operation failed retry 1
[2025-06-10 21:12:42.271 -04:00] [INF] [143] Emby.Server.Implementations.Session.SessionWebSocketListener: Sending ForceKeepAlive message to 1 inactive WebSockets.
[2025-06-10 21:13:17.199 -04:00] [ERR] [43] Emby.Server.Implementations.ScheduledTasks.TaskManager: Error executing Scheduled Task
Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 5: 'database is locked'.
at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
at Polly.Retry.RetryEngine.Implementation[TResult](Func
at Polly.Policy.Execute[TResult](Func
at Microsoft.EntityFrameworkCore.Diagnostics.Internal.RelationalCommandDiagnosticsLogger.CommandNonQueryExecuting(IRelationalConnection connection, DbCommand command, DbContext context, Guid commandId, Guid connectionId, DateTimeOffset startTime, CommandSource commandSource)
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteNonQuery(RelationalCommandParameterObject parameterObject)
at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.<>c.<NonQueryResult>b__31_0(DbContext _, ValueTuple
at MediaBrowser.Controller.Entities.BaseItem.UpdateToRepositoryAsync(ItemUpdateType updateReason, CancellationToken cancellationToken)
at MediaBrowser.Providers.Manager.MetadataService
at MediaBrowser.Providers.Manager.MetadataService
at MediaBrowser.Providers.Manager.MetadataService
at MediaBrowser.Controller.Entities.Folder.<>c__DisplayClass69_0
at MediaBrowser.Controller.Entities.Folder.RefreshMetadataRecursive(IList
at MediaBrowser.Controller.Entities.Folder.RefreshChildMetadata(BaseItem child, MetadataRefreshOptions refreshOptions, Boolean recursive, IProgress
--- End of stack trace from previous location ---
at MediaBrowser.Controller.Entities.Folder.RunTasks[T](Func
at MediaBrowser.Controller.Entities.Folder.ValidateChildrenInternal(IProgress
at Emby.Server.Implementations.Library.LibraryManager.PerformLibraryValidation(IProgress
at Emby.Server.Implementations.ScheduledTasks.ScheduledTaskWorker.ExecuteInternal(TaskOptions options)
[2025-06-10 21:13:17.203 -04:00] [INF] [43] Emby.Server.Implementations.ScheduledTasks.TaskManager: "Scan Media Library" Failed after 48 minute(s) and 55 seconds
[2025-06-10 21:08:39.308 -04:00] [WRN] [54] Jellyfin.Database.Implementations.Locking.OptimisticLockBehavior: Operation failed retry 1
[2025-06-10 21:12:42.271 -04:00] [INF] [143] Emby.Server.Implementations.Session.SessionWebSocketListener: Sending ForceKeepAlive message to 1 inactive WebSockets.
[2025-06-10 21:13:17.199 -04:00] [ERR] [43] Emby.Server.Implementations.ScheduledTasks.TaskManager: Error executing Scheduled Task
Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 5: 'database is locked'.
at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
at Polly.Retry.RetryEngine.Implementation[TResult](Func
3 action, Context context, ExceptionPredicates shouldRetryExceptionPredicates, ResultPredicates
1 shouldRetryResultPredicates, Action4 onRetry, CancellationToken cancellationToken, Int32 permittedRetryCount, IEnumerable
1 sleepDurationsEnumerable, Func4 sleepDurationProvider)
at Polly.Retry.RetryPolicy.Implementation[TResult](Func
3 action, Context context, CancellationToken cancellationToken)at Polly.Policy.Execute[TResult](Func
3 action, Context context, CancellationToken cancellationToken)
at Jellyfin.Database.Implementations.Locking.OptimisticLockBehavior.RetryInterceptor.NonQueryExecuting(DbCommand command, CommandEventData eventData, InterceptionResult
1 result)at Microsoft.EntityFrameworkCore.Diagnostics.Internal.RelationalCommandDiagnosticsLogger.CommandNonQueryExecuting(IRelationalConnection connection, DbCommand command, DbContext context, Guid commandId, Guid connectionId, DateTimeOffset startTime, CommandSource commandSource)
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteNonQuery(RelationalCommandParameterObject parameterObject)
at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.<>c.<NonQueryResult>b__31_0(DbContext _, ValueTuple
3 state)
at Microsoft.EntityFrameworkCore.Query.RelationalShapedQueryCompilingExpressionVisitor.NonQueryResult(RelationalQueryContext relationalQueryContext, RelationalCommandResolver relationalCommandResolver, Type contextType, CommandSource commandSource, Boolean threadSafetyChecksEnabled)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.ExecuteCore[TResult](Expression query, Boolean async, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryCompiler.Execute[TResult](Expression query)
at Jellyfin.Server.Implementations.Item.BaseItemRepository.SaveImages(BaseItem item)
at Emby.Server.Implementations.Library.LibraryManager.UpdateImagesAsync(BaseItem item, Boolean forceUpdate)
at Emby.Server.Implementations.Library.LibraryManager.RunMetadataSavers(BaseItem item, ItemUpdateType updateReason)
at Emby.Server.Implementations.Library.LibraryManager.UpdateItemsAsync(IReadOnlyList
1 items, BaseItem parent, ItemUpdateType updateReason, CancellationToken cancellationToken)at MediaBrowser.Controller.Entities.BaseItem.UpdateToRepositoryAsync(ItemUpdateType updateReason, CancellationToken cancellationToken)
at MediaBrowser.Providers.Manager.MetadataService
2.SaveItemAsync(MetadataResult
1 result, ItemUpdateType reason, CancellationToken cancellationToken)at MediaBrowser.Providers.Manager.MetadataService
2.<RefreshMetadata>g__SaveInternal|33_0(BaseItem item, MetadataRefreshOptions refreshOptions, ItemUpdateType updateType, Boolean isFirstRefresh, Boolean requiresRefresh, MetadataResult
1 metadataResult, CancellationToken cancellationToken)at MediaBrowser.Providers.Manager.MetadataService
2.RefreshMetadata(BaseItem item, MetadataRefreshOptions refreshOptions, CancellationToken cancellationToken)
at MediaBrowser.Controller.Entities.BaseItem.RefreshMetadata(MetadataRefreshOptions options, CancellationToken cancellationToken)
at MediaBrowser.Controller.Entities.Folder.RefreshChildMetadata(BaseItem child, MetadataRefreshOptions refreshOptions, Boolean recursive, IProgress
1 progress, CancellationToken cancellationToken)at MediaBrowser.Controller.Entities.Folder.<>c__DisplayClass69_0
1.<<RunTasks>b__1>d.MoveNext()
--- End of stack trace from previous location ---
at MediaBrowser.Controller.Entities.Folder.RunTasks[T](Func
3 task, IList1 children, IProgress
1 progress, CancellationToken cancellationToken)at MediaBrowser.Controller.Entities.Folder.RefreshMetadataRecursive(IList
1 children, MetadataRefreshOptions refreshOptions, Boolean recursive, IProgress
1 progress, CancellationToken cancellationToken)at MediaBrowser.Controller.Entities.Folder.RefreshChildMetadata(BaseItem child, MetadataRefreshOptions refreshOptions, Boolean recursive, IProgress
1 progress, CancellationToken cancellationToken)
at MediaBrowser.Controller.Entities.Folder.<>c__DisplayClass69_0
1.<<RunTasks>b__1>d.MoveNext()--- End of stack trace from previous location ---
at MediaBrowser.Controller.Entities.Folder.RunTasks[T](Func
3 task, IList
1 children, IProgress1 progress, CancellationToken cancellationToken)
at MediaBrowser.Controller.Entities.Folder.RefreshMetadataRecursive(IList
1 children, MetadataRefreshOptions refreshOptions, Boolean recursive, IProgress1 progress, CancellationToken cancellationToken)
at MediaBrowser.Controller.Entities.Folder.ValidateChildrenInternal2(IProgress
1 progress, Boolean recursive, Boolean refreshChildMetadata, Boolean allowRemoveRoot, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService, CancellationToken cancellationToken)at MediaBrowser.Controller.Entities.Folder.ValidateChildrenInternal(IProgress
1 progress, Boolean recursive, Boolean refreshChildMetadata, Boolean allowRemoveRoot, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService, CancellationToken cancellationToken)
at MediaBrowser.Controller.Entities.AggregateFolder.ValidateChildrenInternal(IProgress
1 progress, Boolean recursive, Boolean refreshChildMetadata, Boolean allowRemoveRoot, MetadataRefreshOptions refreshOptions, IDirectoryService directoryService, CancellationToken cancellationToken)at Emby.Server.Implementations.Library.LibraryManager.PerformLibraryValidation(IProgress
1 progress, CancellationToken cancellationToken)
at Emby.Server.Implementations.Library.LibraryManager.ValidateMediaLibraryInternal(IProgress
1 progress, CancellationToken cancellationToken)at Emby.Server.Implementations.ScheduledTasks.ScheduledTaskWorker.ExecuteInternal(TaskOptions options)
[2025-06-10 21:13:17.203 -04:00] [INF] [43] Emby.Server.Implementations.ScheduledTasks.TaskManager: "Scan Media Library" Failed after 48 minute(s) and 55 seconds
Jellyfin 10.11.0 RC2
docker desktop using WSL2 on Windows 11 with jellyfin/jellyfin:preview
AMD Ryzen 9 7950X
64GB DDR5-3600 RAM
NVIDIA RTX 3060 12GB
OS Drive: Samsung 990 Pro 2TB
Media & Config Drive (all): QNAP TS-932PX NAS with 5 x Seagate Ironwolf Pro 16TB in RAID5 connected with 10Gbps iSCSI link
docker desktop using WSL2 on Windows 11 with jellyfin/jellyfin:preview
AMD Ryzen 9 7950X
64GB DDR5-3600 RAM
NVIDIA RTX 3060 12GB
OS Drive: Samsung 990 Pro 2TB
Media & Config Drive (all): QNAP TS-932PX NAS with 5 x Seagate Ironwolf Pro 16TB in RAID5 connected with 10Gbps iSCSI link