Kareadita / Kavita

Kavita is a fast, feature rich, cross platform reading server. Built with the goal of being a full solution for all your reading needs. Setup your own server and share your reading collection with your friends and family.
http://www.kavitareader.com
GNU General Public License v3.0
6.29k stars 327 forks source link

Automatic collections not being created #1843

Closed strauzen closed 1 year ago

strauzen commented 1 year ago

Hi,

I have akavita updated to the latest version and my libraries configured to automatically create collections from the SeriesGroup tag.

All my files are cbz and the metadata has been updated with ComicRack. I already had some collections previously defined manually. And I tried to rescan the existing libraries with an admin account after I updated Kavita hoping to get the automatically generated ones.

Despite everything seeming in order the Collections are not automatically created. Not sure how to provide more meaningful info to debug this information. It would be great if we could root cause it and solve it.

majora2007 commented 1 year ago

I'm unable to reproduce this. Are you sure you've enabled the setting on your Library?

strauzen commented 1 year ago

At least I think I did, I have attached a screenshot of the library settings as well as of the comic information. Not sure if I am missing something.

image image image

majora2007 commented 1 year ago

Did you do a force scan afterwards? The reason it might not be picking up is this file hasn't been changed since last scan, so the scanner is ignoring it.

This is the edge case when new features come out on existing libraries. You can do a force scan from that library settings or go to the series in question and Scan Series.

strauzen commented 1 year ago

Yes I triggered a force scan multiple times.

Today I added a new series with the series group tag in, that one did get automatically into the collections, but all the ones that were already present before the update are not being added.

Maybe something that could be related. I had all these old series added into collections (of the same name) manually before the update. Then I updated, deleted the collections and triggered a Force Scan. To my surprise none of them appeared.

Today is the first time that I add a new series with the series group tag, and that actually appeared in the collections.

strauzen commented 1 year ago

Any other ideas for this one? Where you able to reproduce?

Or would there be a workaround like recreating the whole configuration?

majora2007 commented 1 year ago

When you say force scan, you mean going to library in side nav, edit, then clicking Force Scan correct? As just scanning a library will not check those ComicInfo files unless they were modified.

strauzen commented 1 year ago

Correct, in edit button the force scan one.

I've noticed that if I edit the info with comictagger (bash) overwriting the files then they also start appearing in the collections.

No idea what is going on. All the files I have are cbz that were usually edited with comicrack

majora2007 commented 1 year ago

That implies the files are being skipped during scan as they aren't modified. Hence why force scan is needed. Anything in logs that state folder is skipped even though forced scan?

strauzen commented 1 year ago

Running a scan, I also re-edited one file from a series see if it also corrects that one. As soon as the scan is done I'll paste the log with the scan related info.

strauzen commented 1 year ago

Ok that is weird...

For some series it does not mention in the logs that it found the collections tag while it is actually there. For other series, like the one I edited before the scan, it mentions it found a collection tag, but it didn't update it. It still assigns it the old one previous to the edit...

Let me know if there are any files or anything I can upload to help you find the root cause of the error. I do not see any errors on the log file. I set it to debug level before triggering the scan.

strauzen commented 1 year ago

I did get the following errors after the scan finished, but I am not sure if they are related:

Kavita] [2023-04-13 18:41:57.643 +00:00  180] [Information] API.Services.Tasks.ScannerService [ScannerService] Finished library scan of 1647 files and 124 series in 583317 milliseconds for Bande Dessinée
[Kavita] [2023-04-13 18:41:57.644 +00:00  180] [Debug] API.Services.Tasks.ScannerService [ScannerService] Removing Series that were not found during the scan
[Kavita] [2023-04-13 18:41:58.286 +00:00  180] [Debug] API.Services.Tasks.ScannerService [ScannerService] Found 0 series that needs to be removed: []
[Kavita] [2023-04-13 18:41:58.918 +00:00  180] [Debug] API.Services.Tasks.ScannerService [ScannerService] Removing Series that were not found during the scan - complete
[Kavita] [2023-04-13 19:26:00.667 +00:00  55] [Fatal] API.Services.Tasks.ScannerService [ScannerService] Multiple series map to this folder. Library scan will be used for ScanFolder
[Kavita] [2023-04-13 19:27:19.353 +00:00  55] [Error] Microsoft.EntityFrameworkCore.Database.Command Failed executing DbCommand (1ms) [Parameters=[], CommandType='"Text"', CommandTimeout='30']
SELECT "g"."Id", "g"."ExternalTag", "g"."NormalizedTitle", "g"."Title"
FROM "Genre" AS "g"
[Kavita] [2023-04-13 19:27:19.779 +00:00  55] [Error] Microsoft.EntityFrameworkCore.Query An exception occurred while iterating over the results of a query for context type 'API.Data.DataContext'.
Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 1: 'no such column: g.ExternalTag'.
   at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
   at Microsoft.Data.Sqlite.SqliteCommand.PrepareAndEnumerateStatements(Stopwatch timer)+MoveNext()
   at Microsoft.Data.Sqlite.SqliteCommand.GetStatements(Stopwatch timer)+MoveNext()
   at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync()
Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 1: 'no such column: g.ExternalTag'.
   at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
   at Microsoft.Data.Sqlite.SqliteCommand.PrepareAndEnumerateStatements(Stopwatch timer)+MoveNext()
   at Microsoft.Data.Sqlite.SqliteCommand.GetStatements(Stopwatch timer)+MoveNext()
   at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync()
[Kavita] [2023-04-13 19:27:54.583 +00:00  76] [Error] Microsoft.EntityFrameworkCore.Database.Command Failed executing DbCommand (0ms) [Parameters=[], CommandType='"Text"', CommandTimeout='30']
SELECT "g"."Id", "g"."ExternalTag", "g"."NormalizedTitle", "g"."Title"
FROM "Genre" AS "g"
[Kavita] [2023-04-13 19:27:54.630 +00:00  76] [Error] Microsoft.EntityFrameworkCore.Query An exception occurred while iterating over the results of a query for context type 'API.Data.DataContext'.
Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 1: 'no such column: g.ExternalTag'.
   at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
   at Microsoft.Data.Sqlite.SqliteCommand.PrepareAndEnumerateStatements(Stopwatch timer)+MoveNext()
   at Microsoft.Data.Sqlite.SqliteCommand.GetStatements(Stopwatch timer)+MoveNext()
   at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync()
Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 1: 'no such column: g.ExternalTag'.
   at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
   at Microsoft.Data.Sqlite.SqliteCommand.PrepareAndEnumerateStatements(Stopwatch timer)+MoveNext()
   at Microsoft.Data.Sqlite.SqliteCommand.GetStatements(Stopwatch timer)+MoveNext()
   at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync()
[Kavita] [2023-04-13 19:29:11.974 +00:00  204] [Error] Microsoft.EntityFrameworkCore.Database.Command Failed executing DbCommand (0ms) [Parameters=[], CommandType='"Text"', CommandTimeout='30']
SELECT "g"."Id", "g"."ExternalTag", "g"."NormalizedTitle", "g"."Title"
FROM "Genre" AS "g"
[Kavita] [2023-04-13 19:29:11.978 +00:00  204] [Error] Microsoft.EntityFrameworkCore.Query An exception occurred while iterating over the results of a query for context type 'API.Data.DataContext'.
Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 1: 'no such column: g.ExternalTag'.
   at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
   at Microsoft.Data.Sqlite.SqliteCommand.PrepareAndEnumerateStatements(Stopwatch timer)+MoveNext()
   at Microsoft.Data.Sqlite.SqliteCommand.GetStatements(Stopwatch timer)+MoveNext()
   at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync()
Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 1: 'no such column: g.ExternalTag'.
   at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
   at Microsoft.Data.Sqlite.SqliteCommand.PrepareAndEnumerateStatements(Stopwatch timer)+MoveNext()
   at Microsoft.Data.Sqlite.SqliteCommand.GetStatements(Stopwatch timer)+MoveNext()
   at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync()
[Kavita] [2023-04-13 19:30:44.236 +00:00  216] [Error] Microsoft.EntityFrameworkCore.Database.Command Failed executing DbCommand (0ms) [Parameters=[], CommandType='"Text"', CommandTimeout='30']
SELECT "g"."Id", "g"."ExternalTag", "g"."NormalizedTitle", "g"."Title"
FROM "Genre" AS "g"
[Kavita] [2023-04-13 19:30:44.239 +00:00  216] [Error] Microsoft.EntityFrameworkCore.Query An exception occurred while iterating over the results of a query for context type 'API.Data.DataContext'.
Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 1: 'no such column: g.ExternalTag'.
   at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
   at Microsoft.Data.Sqlite.SqliteCommand.PrepareAndEnumerateStatements(Stopwatch timer)+MoveNext()
   at Microsoft.Data.Sqlite.SqliteCommand.GetStatements(Stopwatch timer)+MoveNext()
   at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync()
Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 1: 'no such column: g.ExternalTag'.
   at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
   at Microsoft.Data.Sqlite.SqliteCommand.PrepareAndEnumerateStatements(Stopwatch timer)+MoveNext()
   at Microsoft.Data.Sqlite.SqliteCommand.GetStatements(Stopwatch timer)+MoveNext()
   at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync()
[Kavita] [2023-04-13 19:33:42.450 +00:00  156] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP POST /hubs/messages/negotiate responded 200 in 111.9816 ms
[Kavita] [2023-04-13 19:45:39.717 +00:00  138] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP POST /hubs/messages/negotiate responded 200 in 28.9087 ms
[Kavita] [2023-04-13 19:45:39.831 +00:00  138] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP POST /hubs/messages/negotiate responded 200 in 0.2157 ms
[Kavita] [2023-04-13 20:54:46.080 +00:00  38] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET / responded 200 in 429.3623 ms
[Kavita] [2023-04-13 20:54:48.752 +00:00  130] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/theme responded 200 in 1048.2447 ms
[Kavita] [2023-04-13 20:54:49.280 +00:00  38] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/admin/exists responded 200 in 488.6656 ms
[Kavita] [2023-04-13 21:01:59.695 +00:00  188] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET / responded 200 in 325.6365 ms
[Kavita] [2023-04-13 21:02:01.513 +00:00  213] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/theme responded 200 in 1204.4395 ms
[Kavita] [2023-04-13 21:02:01.616 +00:00  47] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/admin/exists responded 200 in 282.0768 ms
[Kavita] [2023-04-13 21:02:10.557 +00:00  113] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP POST /api/account/login responded 401 in 720.7062 ms
[Kavita] [2023-04-13 21:02:31.874 +00:00  113] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP POST /api/account/login responded 401 in 3.6378 ms
[Kavita] [2023-04-13 21:02:41.963 +00:00  86] [Information] API.Controllers.AccountController strauzenAdmin logged in at "2023-04-13T21:02:41.2048898+00:00"
[Kavita] [2023-04-13 21:02:42.637 +00:00  188] [Error] Serilog.AspNetCore.RequestLoggingMiddleware HTTP POST /api/account/login responded 500 in 5130.1519 ms
Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException: The database operation was expected to affect 1 row(s), but actually affected 0 row(s); data may have been modified or deleted since entities were loaded. See http://go.microsoft.com/fwlink/?LinkId=527962 for information on understanding and handling optimistic concurrency exceptions.
   at Microsoft.EntityFrameworkCore.Update.AffectedCountModificationCommandBatch.ThrowAggregateUpdateConcurrencyException(Int32 commandIndex, Int32 expectedRowsAffected, Int32 rowsAffected)
   at Microsoft.EntityFrameworkCore.Update.AffectedCountModificationCommandBatch.ConsumeResultSetWithoutPropagationAsync(Int32 commandIndex, RelationalDataReader reader, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.AffectedCountModificationCommandBatch.ConsumeAsync(RelationalDataReader reader, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
   at API.Data.UnitOfWork.CommitAsync() in /home/runner/work/Kavita/Kavita/API/Data/UnitOfWork.cs:line 81
   at API.Controllers.AccountController.Login(LoginDto loginDto) in /home/runner/work/Kavita/Kavita/API/Controllers/AccountController.cs:line 220
   at lambda_method2791(Closure , Object )
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
   at API.Startup.<>c.<<Configure>b__4_4>d.MoveNext() in /home/runner/work/Kavita/Kavita/API/Startup.cs:line 327
--- End of stack trace from previous location ---
   at Serilog.AspNetCore.RequestLoggingMiddleware.Invoke(HttpContext httpContext)
[Kavita] [2023-04-13 21:02:44.510 +00:00  188] [Error] API.Middleware.ExceptionMiddleware There was an exception
Microsoft.EntityFrameworkCore.DbUpdateConcurrencyException: The database operation was expected to affect 1 row(s), but actually affected 0 row(s); data may have been modified or deleted since entities were loaded. See http://go.microsoft.com/fwlink/?LinkId=527962 for information on understanding and handling optimistic concurrency exceptions.
   at Microsoft.EntityFrameworkCore.Update.AffectedCountModificationCommandBatch.ThrowAggregateUpdateConcurrencyException(Int32 commandIndex, Int32 expectedRowsAffected, Int32 rowsAffected)
   at Microsoft.EntityFrameworkCore.Update.AffectedCountModificationCommandBatch.ConsumeResultSetWithoutPropagationAsync(Int32 commandIndex, RelationalDataReader reader, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.AffectedCountModificationCommandBatch.ConsumeAsync(RelationalDataReader reader, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.ReaderModificationCommandBatch.ExecuteAsync(IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.Update.Internal.BatchExecutor.ExecuteAsync(IEnumerable`1 commandBatches, IRelationalConnection connection, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(IList`1 entriesToSave, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.ChangeTracking.Internal.StateManager.SaveChangesAsync(StateManager stateManager, Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
   at Microsoft.EntityFrameworkCore.DbContext.SaveChangesAsync(Boolean acceptAllChangesOnSuccess, CancellationToken cancellationToken)
   at API.Data.UnitOfWork.CommitAsync() in /home/runner/work/Kavita/Kavita/API/Data/UnitOfWork.cs:line 81
   at API.Controllers.AccountController.Login(LoginDto loginDto) in /home/runner/work/Kavita/Kavita/API/Controllers/AccountController.cs:line 220
   at lambda_method2791(Closure , Object )
   at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
--- End of stack trace from previous location ---
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
   at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
   at API.Startup.<>c.<<Configure>b__4_4>d.MoveNext() in /home/runner/work/Kavita/Kavita/API/Startup.cs:line 327
--- End of stack trace from previous location ---
   at Serilog.AspNetCore.RequestLoggingMiddleware.Invoke(HttpContext httpContext)
   at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
   at Microsoft.AspNetCore.ResponseCaching.ResponseCachingMiddleware.Invoke(HttpContext httpContext)
   at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
   at API.Middleware.ExceptionMiddleware.InvokeAsync(HttpContext context) in /home/runner/work/Kavita/Kavita/API/Middleware/ExceptionMiddleware.cs:line 53
[Kavita] [2023-04-13 21:02:46.192 +00:00  86] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP POST /api/account/login responded 200 in 8626.6214 ms
[Kavita] [2023-04-13 21:02:46.244 +00:00  188] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP POST /hubs/messages/negotiate responded 200 in 0.5652 ms
[Kavita] [2023-04-13 21:02:46.481 +00:00  69] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/device responded 200 in 240.5437 ms
[Kavita] [2023-04-13 21:02:46.575 +00:00  88] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP POST /hubs/messages/negotiate responded 200 in 240.0427 ms
[Kavita] [2023-04-13 21:02:47.116 +00:00  113] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/library responded 200 in 874.7050 ms
[Kavita] [2023-04-13 21:02:48.268 +00:00  113] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/library responded 200 in 325.8356 ms
[Kavita] [2023-04-13 21:02:54.369 +00:00  188] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP POST /api/series/recently-updated-series responded 200 in 7980.7678 ms
[Kavita] [2023-04-13 21:02:56.038 +00:00  113] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/settings/log-levels responded 200 in 62.4271 ms
[Kavita] [2023-04-13 21:02:56.568 +00:00  214] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/settings/task-frequencies responded 200 in 174.2826 ms
[Kavita] [2023-04-13 21:02:57.255 +00:00  243] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/settings/log-levels responded 200 in 1.5266 ms
[Kavita] [2023-04-13 21:02:57.418 +00:00  59] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/library responded 200 in 3035.7720 ms
[Kavita] [2023-04-13 21:02:57.663 +00:00  133] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/settings/task-frequencies responded 200 in 109.0640 ms
[Kavita] [2023-04-13 21:02:57.732 +00:00  92] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/settings responded 200 in 1310.1242 ms
[Kavita] [2023-04-13 21:02:57.746 +00:00  92] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/settings responded 200 in 3.3309 ms
[Kavita] [2023-04-13 21:02:58.040 +00:00  188] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/image/series-cover responded 200 in 3553.5738 ms
[Kavita] [2023-04-13 21:02:58.117 +00:00  214] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/server/jobs responded 200 in 300.0972 ms
[Kavita] [2023-04-13 21:02:58.550 +00:00  72] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/image/series-cover responded 200 in 4031.6172 ms
[Kavita] [2023-04-13 21:02:58.604 +00:00  88] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/image/series-cover responded 200 in 4118.0450 ms
[Kavita] [2023-04-13 21:02:58.606 +00:00  80] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP GET /api/image/series-cover responded 200 in 4119.0899 ms
[Kavita] [2023-04-13 21:02:58.735 +00:00  99] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP POST /api/series/on-deck responded 200 in 12013.3803 ms
[Kavita] [2023-04-13 21:02:58.766 +00:00  86] [Information] Serilog.AspNetCore.RequestLoggingMiddleware HTTP POST /api/series/recently-added responded 200 in 12378.8035 ms
majora2007 commented 1 year ago

Did you downgrade versions or are you on nightly branch? Because 'no such column: g.ExternalTag' means you're running something older whereas your DB has been updated to a version that the column was removed.

strauzen commented 1 year ago

I've installed the version with the latest tag from docker. I don't have auto updates setup so I update it fro time to time myself. The current very I'm running is:

About System Version 0.6.0.0 Install ID 3e51b515

majora2007 commented 1 year ago

You are too far out of date. Please update to the latest. I only provide support for the latest version.

strauzen commented 1 year ago

I just updated to the latest version, I am running a scan to see if it works. I will check when it's done and upload the logs if I see something weird.

I am wondering how much time do you want to spend on this? Since I have a workaround and not that many collections I can also reupdate the metadata using comictagger and be done with this issue. If you want to root cause it then I will delay fixing the library (it doesn't bother me) to be able to figure this out.

majora2007 commented 1 year ago

This is just support work. I already validated it works on the latest version, so I'm 100% positive there are no issues.