gotson / komga

Media server for comics/mangas/BDs/magazines/eBooks with API, OPDS and Kobo Sync support
https://komga.org
MIT License
3.94k stars 234 forks source link

Without changing anything, Komga stopped working #1398

Closed tiritibambix closed 8 months ago

tiritibambix commented 8 months ago

Steps to reproduce

Run Komga Enjoy Wait Don't enjoy anymore because it is not working anymore

Expected behavior

Should work, should enjoy

Actual behavior

Doesn't work, don't enjoy

Logs

 ____  __.
|    |/ _|____   _____    _________
|      < /  _ \ /     \  / ___\__  \
|    |  (  <_> )  Y Y  \/ /_/  > __ \_
|____|__ \____/|__|_|  /\___  (____  /
        \/           \//_____/     \/

Version: 1.10.1

2024-01-17T17:17:11.100+01:00  INFO 1 --- [           main] org.gotson.komga.ApplicationKt           : Starting ApplicationKt v1.10.1 using Java 21.0.1 with PID 1 (/app/BOOT-INF/classes started by ? in /app)
2024-01-17T17:17:11.103+01:00  INFO 1 --- [           main] org.gotson.komga.ApplicationKt           : No active profile set, falling back to 1 default profile: "default"
2024-01-17T17:17:13.450+01:00  INFO 1 --- [           main] c.github.gotson.nightcompress.Archive    : Loaded libarchive 3.6.0 zlib/1.2.11 liblzma/5.2.5 bz2lib/1.0.8 liblz4/1.9.3 libzstd/1.4.8
2024-01-17T17:17:13.452+01:00  INFO 1 --- [           main] o.g.k.i.m.divina.Rar5Extractor           : Rar5 extractor is enabled
2024-01-17T17:17:13.454+01:00  INFO 1 --- [           main] o.s.c.a.ConfigurationClassPostProcessor  : Cannot enhance @Configuration bean definition 'rar5Configuration' since its singleton instance has been created too early. The typical cause is a non-static @Bean method with a BeanDefinitionRegistryPostProcessor return type: Consider declaring such methods as 'static'.
2024-01-17T17:17:14.264+01:00  INFO 1 --- [           main] com.zaxxer.hikari.HikariDataSource       : SqliteUdfPool - Starting...
2024-01-17T17:17:14.478+01:00  INFO 1 --- [           main] com.zaxxer.hikari.pool.HikariPool        : SqliteUdfPool - Added connection org.sqlite.jdbc4.JDBC4Connection@a55e82a
2024-01-17T17:17:14.480+01:00  INFO 1 --- [           main] com.zaxxer.hikari.HikariDataSource       : SqliteUdfPool - Start completed.
2024-01-17T17:17:14.589+01:00  INFO 1 --- [           main] o.f.c.internal.license.VersionPrinter    : Flyway Community Edition 9.16.3 by Redgate
2024-01-17T17:17:14.589+01:00  INFO 1 --- [           main] o.f.c.internal.license.VersionPrinter    : See release notes here: https://rd.gt/416ObMi
2024-01-17T17:17:14.589+01:00  INFO 1 --- [           main] o.f.c.internal.license.VersionPrinter    : 
2024-01-17T17:17:14.612+01:00  INFO 1 --- [           main] o.f.c.i.database.base.BaseDatabaseType   : Database: jdbc:sqlite:/config/database.sqlite (SQLite 3.43)
2024-01-17T17:17:14.698+01:00  INFO 1 --- [           main] o.f.core.internal.command.DbValidate     : Successfully validated 78 migrations (execution time 00:00.056s)
2024-01-17T17:17:14.704+01:00  INFO 1 --- [           main] o.f.core.internal.command.DbMigrate      : Current version of schema "main": 20231214163213
2024-01-17T17:17:14.705+01:00  INFO 1 --- [           main] o.f.core.internal.command.DbMigrate      : Schema "main" is up to date. No migration necessary.
2024-01-17T17:17:15.812+01:00  INFO 1 --- [           main] o.j.i.D.logVersionSupport                : Version                  : Database version is supported by dialect SQLITE: 3.43.2
2024-01-17T17:17:16.026+01:00  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 25600 (http)
2024-01-17T17:17:16.034+01:00  INFO 1 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2024-01-17T17:17:16.034+01:00  INFO 1 --- [           main] o.apache.catalina.core.StandardEngine    : Starting Servlet engine: [Apache Tomcat/10.1.11]
2024-01-17T17:17:16.107+01:00  INFO 1 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2024-01-17T17:17:16.107+01:00  INFO 1 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 4937 ms
2024-01-17T17:17:16.578+01:00  INFO 1 --- [           main] c.g.g.n.j.i.plugins.JxlImageReaderSpi    : Loaded libjxl v0.8.2
2024-01-17T17:17:16.589+01:00  INFO 1 --- [           main] c.g.g.n.h.i.plugins.HeifImageReaderSpi   : Loaded libheif v1.17.6
2024-01-17T17:17:16.606+01:00  INFO 1 --- [           main] c.g.g.n.w.i.plugins.WebpImageReaderSpi   : Loaded libwebp: decoder v1.2.2, demux v1.2.2
2024-01-17T17:17:16.630+01:00  INFO 1 --- [           main] o.g.k.i.image.ImageConverter             : Supported read formats: [JPG, JPEG 2000, tiff, bmp, bigtiff, PCX, gif, WBMP, PNG, RAW, JPEG, AVIF, PNM, BigTIFF, tif, TIFF, wbmp, jpeg, jbig2, jpeg-lossless, jxl, jpg, JPEG2000, BMP, pcx, GIF, Jpeg XL, png, raw, BIGTIFF, webp, JPEG-LOSSLESS, JBIG2, pnm, TIF, jpeg2000, WebP, HEIC, jpeg 2000, HEIF]
2024-01-17T17:17:16.630+01:00  INFO 1 --- [           main] o.g.k.i.image.ImageConverter             : Supported read mediaTypes: [image/vnd.wap.wbmp, image/jpeg, image/x-portable-graymap, image/bmp, image/gif, image/x-windows-pcx, image/x-pc-paintbrush, image/x-raw, image/webp, image/heif-sequence, image/x-pcx, image/heic-sequence, image/avif, image/x-portable-bitmap, image/heif, image/heic, image/x-jb2, image/png, image/pcx, image/x-windows-bmp, image/jpeg2000, image/x-bmp, image/jp2, image/x-png, image/x-portable-pixmap, image/tiff, image/x-tiff, image/x-jbig2, image/x-portable-anymap, image/jxl]
2024-01-17T17:17:16.631+01:00  INFO 1 --- [           main] o.g.k.i.image.ImageConverter             : Supported write formats: [JPG, JPEG 2000, tiff, bmp, PCX, bigtiff, gif, WBMP, PNG, RAW, JPEG, PNM, BigTIFF, tif, TIFF, jpeg, wbmp, jpg, JPEG2000, BMP, pcx, GIF, png, raw, BIGTIFF, pnm, TIF, jpeg2000, jpeg 2000]
2024-01-17T17:17:16.631+01:00  INFO 1 --- [           main] o.g.k.i.image.ImageConverter             : Supported write mediaTypes: [image/vnd.wap.wbmp, image/png, image/jpeg, image/x-portable-graymap, image/bmp, image/pcx, image/gif, image/x-windows-pcx, image/x-windows-bmp, image/jpeg2000, image/x-pc-paintbrush, image/x-raw, image/jp2, image/x-pcx, image/x-bmp, image/x-png, image/x-portable-bitmap, image/x-portable-pixmap, image/tiff, image/x-tiff, image/x-portable-anymap]
2024-01-17T17:17:16.748+01:00  INFO 1 --- [           main] com.zaxxer.hikari.HikariDataSource       : SqliteTaskPool - Starting...
2024-01-17T17:17:16.748+01:00  INFO 1 --- [           main] com.zaxxer.hikari.pool.HikariPool        : SqliteTaskPool - Added connection org.sqlite.jdbc4.JDBC4Connection@2e5c245d
2024-01-17T17:17:16.749+01:00  INFO 1 --- [           main] com.zaxxer.hikari.HikariDataSource       : SqliteTaskPool - Start completed.
2024-01-17T17:17:16.794+01:00  INFO 1 --- [           main] o.f.c.i.database.base.BaseDatabaseType   : Database: jdbc:sqlite:/config/tasks.sqlite (SQLite 3.43)
2024-01-17T17:17:16.796+01:00  INFO 1 --- [           main] o.f.core.internal.command.DbValidate     : Successfully validated 1 migration (execution time 00:00.001s)
2024-01-17T17:17:16.797+01:00  INFO 1 --- [           main] o.f.core.internal.command.DbMigrate      : Current version of schema "main": 20231013114850
2024-01-17T17:17:16.797+01:00  INFO 1 --- [           main] o.f.core.internal.command.DbMigrate      : Schema "main" is up to date. No migration necessary.
2024-01-17T17:17:16.979+01:00  INFO 1 --- [           main] o.a.l.s.MemorySegmentIndexInputProvider  : Using MemorySegmentIndexInput with Java 21; to disable start with -Dorg.apache.lucene.store.MMapDirectory.enableMemorySegments=false
2024-01-17T17:17:17.415+01:00  WARN 1 --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'taskProcessor' defined in file [/app/BOOT-INF/classes/org/gotson/komga/application/tasks/TaskProcessor.class]: SQL [update TASK set OWNER = ? where TASK.OWNER is not null]; [SQLITE_READONLY] Attempt to write a readonly database (attempt to write a readonly database)
2024-01-17T17:17:17.416+01:00  INFO 1 --- [           main] com.zaxxer.hikari.HikariDataSource       : SqliteTaskPool - Shutdown initiated...
2024-01-17T17:17:17.418+01:00  INFO 1 --- [           main] com.zaxxer.hikari.HikariDataSource       : SqliteTaskPool - Shutdown completed.
2024-01-17T17:17:17.419+01:00  INFO 1 --- [           main] com.zaxxer.hikari.HikariDataSource       : SqliteUdfPool - Shutdown initiated...
2024-01-17T17:17:17.420+01:00  INFO 1 --- [           main] com.zaxxer.hikari.HikariDataSource       : SqliteUdfPool - Shutdown completed.
2024-01-17T17:17:17.422+01:00  INFO 1 --- [           main] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
2024-01-17T17:17:17.441+01:00  INFO 1 --- [           main] .s.b.a.l.ConditionEvaluationReportLogger : 

Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.
2024-01-17T17:17:17.454+01:00 ERROR 1 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'taskProcessor' defined in file [/app/BOOT-INF/classes/org/gotson/komga/application/tasks/TaskProcessor.class]: SQL [update TASK set OWNER = ? where TASK.OWNER is not null]; [SQLITE_READONLY] Attempt to write a readonly database (attempt to write a readonly database)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1770) ~[spring-beans-6.0.11.jar:6.0.11]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:598) ~[spring-beans-6.0.11.jar:6.0.11]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520) ~[spring-beans-6.0.11.jar:6.0.11]
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) ~[spring-beans-6.0.11.jar:6.0.11]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.0.11.jar:6.0.11]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) ~[spring-beans-6.0.11.jar:6.0.11]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.0.11.jar:6.0.11]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:973) ~[spring-beans-6.0.11.jar:6.0.11]
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:942) ~[spring-context-6.0.11.jar:6.0.11]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:608) ~[spring-context-6.0.11.jar:6.0.11]
    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.1.2.jar:3.1.2]
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:734) ~[spring-boot-3.1.2.jar:3.1.2]
    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:436) ~[spring-boot-3.1.2.jar:3.1.2]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:312) ~[spring-boot-3.1.2.jar:3.1.2]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) ~[spring-boot-3.1.2.jar:3.1.2]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) ~[spring-boot-3.1.2.jar:3.1.2]
    at org.gotson.komga.ApplicationKt.main(Application.kt:21) ~[classes/:1.10.1]
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source) ~[na:na]
    at java.base/java.lang.reflect.Method.invoke(Unknown Source) ~[na:na]
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) ~[app/:na]
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:95) ~[app/:na]
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) ~[app/:na]
    at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:65) ~[app/:na]
Caused by: org.jooq.exception.DataAccessException: SQL [update TASK set OWNER = ? where TASK.OWNER is not null]; [SQLITE_READONLY] Attempt to write a readonly database (attempt to write a readonly database)
    at org.jooq_3.18.4.SQLITE.debug(Unknown Source) ~[na:na]
    at org.jooq.impl.Tools.translate(Tools.java:3470) ~[jooq-3.18.4.jar:na]
    at org.jooq.impl.Tools.translate(Tools.java:3458) ~[jooq-3.18.4.jar:na]
    at org.jooq.impl.DefaultExecuteContext.sqlException(DefaultExecuteContext.java:772) ~[jooq-3.18.4.jar:na]
    at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:371) ~[jooq-3.18.4.jar:na]
    at org.jooq.impl.AbstractDelegatingQuery.execute(AbstractDelegatingQuery.java:115) ~[jooq-3.18.4.jar:na]
    at org.gotson.komga.infrastructure.jooq.tasks.TasksDao.disown(TasksDao.kt:124) ~[classes/:1.10.1]
    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source) ~[na:na]
    at java.base/java.lang.reflect.Method.invoke(Unknown Source) ~[na:na]
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) ~[spring-aop-6.0.11.jar:6.0.11]
    at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:704) ~[spring-aop-6.0.11.jar:6.0.11]
    at org.gotson.komga.infrastructure.jooq.tasks.TasksDao$$SpringCGLIB$$0.disown(<generated>) ~[classes/:1.10.1]
    at org.gotson.komga.application.tasks.TaskProcessor.afterPropertiesSet(TaskProcessor.kt:31) ~[classes/:1.10.1]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1817) ~[spring-beans-6.0.11.jar:6.0.11]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1766) ~[spring-beans-6.0.11.jar:6.0.11]
    ... 22 common frames omitted
Caused by: org.sqlite.SQLiteException: [SQLITE_READONLY] Attempt to write a readonly database (attempt to write a readonly database)
    at org.sqlite.core.DB.newSQLException(DB.java:1179) ~[sqlite-jdbc-3.43.2.2.jar:na]
    at org.sqlite.core.DB.newSQLException(DB.java:1190) ~[sqlite-jdbc-3.43.2.2.jar:na]
    at org.sqlite.core.DB.execute(DB.java:988) ~[sqlite-jdbc-3.43.2.2.jar:na]
    at org.sqlite.jdbc3.JDBC3PreparedStatement.lambda$execute$0(JDBC3PreparedStatement.java:58) ~[sqlite-jdbc-3.43.2.2.jar:na]
    at org.sqlite.jdbc3.JDBC3Statement.withConnectionTimeout(JDBC3Statement.java:459) ~[sqlite-jdbc-3.43.2.2.jar:na]
    at org.sqlite.jdbc3.JDBC3PreparedStatement.execute(JDBC3PreparedStatement.java:53) ~[sqlite-jdbc-3.43.2.2.jar:na]
    at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44) ~[HikariCP-5.0.1.jar:na]
    at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java) ~[HikariCP-5.0.1.jar:na]
    at org.jooq.tools.jdbc.DefaultPreparedStatement.execute(DefaultPreparedStatement.java:219) ~[jooq-3.18.4.jar:na]
    at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:436) ~[jooq-3.18.4.jar:na]
    at org.jooq.impl.AbstractDMLQuery.execute(AbstractDMLQuery.java:1024) ~[jooq-3.18.4.jar:na]
    at org.jooq.impl.AbstractQuery.execute(AbstractQuery.java:357) ~[jooq-3.18.4.jar:na]
    ... 32 common frames omitted

Komga version

Latest

Operating system

Debian 12 / OMV latesst / Docker latest

Installation method

Docker

Other details

Logs show a permission error. I've been reviewing permissions and puid/pgid and everything looks normal. I haven't changed a thing since I installed it last year. Here is my docker-compse:

version: '3.3'
services:
  komga:
    image: gotson/komga
    container_name: komga
    volumes:
      - type: bind
        source: /srv/dev-disk-by-uuid-7fe66601-5ca0-4c09-bc13-a015025fe53a/Files/Komga/config
        target: /config
      - type: bind
        source: /srv/dev-disk-by-uuid-7fe66601-5ca0-4c09-bc13-a015025fe53a/Files/Komga/data
        target: /data
      - type: bind
        source: /srv/dev-disk-by-uuid-7fe66601-5ca0-4c09-bc13-a015025fe53a/Readable/Comics/
        target: /comics
      - type: bind
        source: /srv/dev-disk-by-uuid-7fe66601-5ca0-4c09-bc13-a015025fe53a/Readable/eBooks/
        target: /books
      - type: bind
        source: /srv/dev-disk-by-uuid-7fe66601-5ca0-4c09-bc13-a015025fe53a/Readable/Magazines/
        target: /magazines
      - type: bind
        source: /etc/timezone
        target: /etc/timezone
        read_only: true
    ports:
      - 9080:8080
    user: "998:100"
    # remove the whole environment section if you don't need it
   # environment:
   #   - <ENV_VAR>=<extra configuration>
    restart: unless-stopped

Acknowledgements

gotson commented 8 months ago

Caused by: org.sqlite.SQLiteException: [SQLITE_READONLY] Attempt to write a readonly database (attempt to write a readonly database)

Most likely you have an issue with your docker mounts or the underlying FS.

tiritibambix commented 8 months ago

Hello. Thank you for your answer.

I decided to start from scratch. So I manually created confg, config/database.sqliteand data and ensured they had proper user:group / permissions.

It looks like the container successfully deploys, but I still can't access it.

I really don't get all this because I have a lot of other services running with the same config and just tried deploying another service with the same config now and everything works great.

Am I missing something in the new logs ?

farahnur42 commented 8 months ago

@tiritibambix If the rest of your compose is still the same then you have the wrong container port, it should be 9080:25600

gotson commented 8 months ago

new logs look fine, no errors. Probably the wrong port as mentioned above.

tiritibambix commented 8 months ago

Jeez, I missed the port thing. I could have sworn port was originally 8080:8080. Did the config change at some point ?

Anyway, it is working now. Thanks a lot for your assistance.