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, ResultPredicates1 shouldRetryResultPredicates, Action4 onRetry, CancellationToken cancellationToken, Int32 permittedRetryCount, IEnumerable1 sleepDurationsEnumerable, Func4 sleepDurationProvider)
at Polly.Retry.RetryPolicy.Implementation[TResult](Func3 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, InterceptionResult1 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(IReadOnlyList1 items, BaseItem parent, ItemUpdateType updateReason, CancellationToken cancellationToken)at MediaBrowser.Controller.Entities.BaseItem.UpdateToRepositoryAsync(ItemUpdateType updateReason, CancellationToken cancellationToken)
at MediaBrowser.Providers.Manager.MetadataService
2.SaveItemAsync(MetadataResult1 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, MetadataResult1 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, IProgress1 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](Func3 task, IList1 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.RefreshChildMetadata(BaseItem child, MetadataRefreshOptions refreshOptions, Boolean recursive, IProgress
1 progress, CancellationToken cancellationToken)
at MediaBrowser.Controller.Entities.Folder.<>c__DisplayClass69_01.<<RunTasks>b__1>d.MoveNext()--- End of stack trace from previous location ---
at MediaBrowser.Controller.Entities.Folder.RunTasks[T](Func
3 task, IList1 children, IProgress1 progress, CancellationToken cancellationToken)
at MediaBrowser.Controller.Entities.Folder.RefreshMetadataRecursive(IList1 children, MetadataRefreshOptions refreshOptions, Boolean recursive, IProgress1 progress, CancellationToken cancellationToken)
at MediaBrowser.Controller.Entities.Folder.ValidateChildrenInternal2(IProgress1 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(IProgress1 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(IProgress1 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.3
docker desktop using WSL2 on Windows 11 25H2 with jellyfin/jellyfin:latest
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 25H2 with jellyfin/jellyfin:latest
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

