Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug] Error starting on docker version 0.64.3 for arm 32 #349

Closed
1 task done
alejandrofm opened this issue Oct 30, 2020 · 35 comments
Closed
1 task done

[Bug] Error starting on docker version 0.64.3 for arm 32 #349

alejandrofm opened this issue Oct 30, 2020 · 35 comments
Labels
bug Something isn't working help wanted Extra attention is needed released

Comments

@alejandrofm
Copy link

alejandrofm commented Oct 30, 2020

Komga environment

  • OS: Raspbian
  • Komga version: 0.64.3
  • I am running Komga with Docker
    • Docker image tag [e.g. latest, beta]: latest (0.64.3)

Describe the bug

Image doesnt boot, docker console shows the error:
No monotonic clock was available
It worked fine with 0.64.2, I rollbacked to that version

@grim7reaper
Copy link
Contributor

Same error as here.
I guess the base image used by Komga was updated again and the regression came back :/

@gotson
Copy link
Owner

gotson commented Oct 31, 2020

I saw some discussions on the base image issue tracker about failed updates of base image to migrate from one version of ubuntu to another, at about the same time the 0.64.3 release of Komga happened.

I just rebuilt the docker images and pushed again latest and 0.64.3.

Could you give it a try and let me know if that works ?

@alejandrofm
Copy link
Author

alejandrofm commented Oct 31, 2020

Same error with latest:
OpenJDK Server VM warning: No monotonic clock was available - timed services may be adversely affected if the time-of-day clock changes
Just to be sure I'm on ARMv7

@gotson
Copy link
Owner

gotson commented Nov 1, 2020

I need to find a way to reproduce first, then try to fix it temporarily with a fixed version of the base image, and also raise the problem to the base image maintainers.

@alejandrofm
Copy link
Author

I understand, and am here for any testing/logging can be done to help.
Thanks!

@gotson
Copy link
Owner

gotson commented Nov 1, 2020

I tried to run the armv7 image on my Macbook using qemu-user-static, and it works fine.

I'm using this image: gotson/komga@sha256:5201f8c6bcdba0821aafd81383b9ba7b5d9d3b8d51d30d4b315ce997fdfc7a00

Could you give a try with that particular image ?

docker run --rm -t gotson/komga@sha256:5201f8c6bcdba0821aafd81383b9ba7b5d9d3b8d51d30d4b315ce997fdfc7a00

@alejandrofm
Copy link
Author

alejandrofm commented Nov 1, 2020

No luck, i'm runing them via portainer, sould make no difference, but...
I'll show you the full configuration:

    "AppArmorProfile": "",
    "Args": [
        "org.springframework.boot.loader.JarLauncher"
    ],
    "Config": {
        "AttachStderr": false,
        "AttachStdin": false,
        "AttachStdout": false,
        "Cmd": null,
        "Domainname": "",
        "Entrypoint": [
            "java",
            "org.springframework.boot.loader.JarLauncher"
        ],
        "Env": [
            "PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
            "LANG=en_US.UTF-8",
            "LANGUAGE=en_US:en",
            "LC_ALL=en_US.UTF-8",
            "JAVA_VERSION=jdk-11.0.9+11",
            "JAVA_HOME=/opt/java/openjdk",
            "KOMGA_DATABASE_BACKUP_PATH=/config/database-backup.zip",
            "KOMGA_DATABASE_FILE=/config/database.sqlite",
            "SPRING_DATASOURCE_URL=jdbc:h2:/config/database.h2",
            "SPRING_ARTEMIS_EMBEDDED_DATA_DIRECTORY=/config/artemis",
            "LOGGING_FILE_NAME=/config/logs/komga.log"
        ],
        "ExposedPorts": {
            "8080/tcp": {}
        },
        "Hostname": "e6c16e012126",
        "Image": "gotson/komga@sha256:5201f8c6bcdba0821aafd81383b9ba7b5d9d3b8d51d30d4b315ce997fdfc7a00",
        "Labels": {},
        "OnBuild": null,
        "OpenStdin": false,
        "StdinOnce": false,
        "Tty": false,
        "User": "",
        "Volumes": {
            "/books": {},
            "/config": {},
            "/tmp": {}
        },
        "WorkingDir": "/app"
    },
    "Created": "2020-11-01T17:43:56.433200059Z",
    "Driver": "overlay2",
    "ExecIDs": [
        "e35240aabcad78bb35af055b471d0ce76cd0e3db16a360eb75d69364ab223b05"
    ],
    "GraphDriver": {
        "Data": {
            "LowerDir": "/var/lib/docker/overlay2/447cdd1c36cb6d29a335b94d9484ce1fa29b0c5c4196dd6ee9188a1344799445-init/diff:/var/lib/docker/overlay2/7f0623f86904cc225ec4512d551b157b0c4d11e719276213f951bff30132d8af/diff:/var/lib/docker/overlay2/47e78a0624bb80e65ba916a5afd2497107a9cf06edd6de93553aa8642aba89e0/diff:/var/lib/docker/overlay2/b59f16e0dd6364ab372dff3096b23c987a34b3bc2fff7890bc68a9585c8b0dc6/diff:/var/lib/docker/overlay2/dae36256b12ab77d423102690a38d09a048a06a08c30586c7d7142392bf5e79a/diff:/var/lib/docker/overlay2/0d7d79400e7146b4ce9c8ba1efafb86e522b09da3fdc9d6d4bbc0eb3b58bb5f1/diff:/var/lib/docker/overlay2/d4513500a6fb8f46b86a8ae28454aca0b47c064f18e0e045ebc37d8e34e93ac5/diff:/var/lib/docker/overlay2/8f6e02a0ec5c243366df21fc28c82791d13eec8b4ad3447e5c65b98fef8d21b7/diff:/var/lib/docker/overlay2/6a4249076f77a90a2d7c7552bf1d02ec866d9e4140ae60f97a1fa65e68fdbcd7/diff:/var/lib/docker/overlay2/beae579c6795716d4686811a61fed0f43c07b3a685ccf969d401a992bdbc1a43/diff:/var/lib/docker/overlay2/8e12264fc76d6111a28d529b8dbdde4549a7260fc6bbee2bbc0f4e9da2f776db/diff",
            "MergedDir": "/var/lib/docker/overlay2/447cdd1c36cb6d29a335b94d9484ce1fa29b0c5c4196dd6ee9188a1344799445/merged",
            "UpperDir": "/var/lib/docker/overlay2/447cdd1c36cb6d29a335b94d9484ce1fa29b0c5c4196dd6ee9188a1344799445/diff",
            "WorkDir": "/var/lib/docker/overlay2/447cdd1c36cb6d29a335b94d9484ce1fa29b0c5c4196dd6ee9188a1344799445/work"
        },
        "Name": "overlay2"
    },
    "HostConfig": {
        "AutoRemove": false,
        "Binds": [
            "/srv/dev-disk-by-label-2TB_Rpi/komga/books:/books",
            "522788f890db61bedbc9d9b94f559240014139cf59029ba69e2152c17f73c0e7:/tmp",
            "/srv/dev-disk-by-label-2TB_Rpi/komga/config:/config"
        ],
        "BlkioDeviceReadBps": null,
        "BlkioDeviceReadIOps": null,
        "BlkioDeviceWriteBps": null,
        "BlkioDeviceWriteIOps": null,
        "BlkioWeight": 0,
        "BlkioWeightDevice": null,
        "CapAdd": [
            "AUDIT_WRITE",
            "CHOWN",
            "DAC_OVERRIDE",
            "FOWNER",
            "FSETID",
            "KILL",
            "MKNOD",
            "NET_BIND_SERVICE",
            "NET_RAW",
            "SETFCAP",
            "SETGID",
            "SETPCAP",
            "SETUID",
            "SYS_CHROOT"
        ],
        "CapDrop": [
            "AUDIT_CONTROL",
            "BLOCK_SUSPEND",
            "DAC_READ_SEARCH",
            "IPC_LOCK",
            "IPC_OWNER",
            "LEASE",
            "LINUX_IMMUTABLE",
            "MAC_ADMIN",
            "MAC_OVERRIDE",
            "NET_ADMIN",
            "NET_BROADCAST",
            "SYSLOG",
            "SYS_ADMIN",
            "SYS_BOOT",
            "SYS_MODULE",
            "SYS_NICE",
            "SYS_PACCT",
            "SYS_PTRACE",
            "SYS_RAWIO",
            "SYS_RESOURCE",
            "SYS_TIME",
            "SYS_TTY_CONFIG",
            "WAKE_ALARM"
        ],
        "Capabilities": null,
        "Cgroup": "",
        "CgroupParent": "",
        "ConsoleSize": [
            0,
            0
        ],
        "ContainerIDFile": "",
        "CpuCount": 0,
        "CpuPercent": 0,
        "CpuPeriod": 0,
        "CpuQuota": 0,
        "CpuRealtimePeriod": 0,
        "CpuRealtimeRuntime": 0,
        "CpuShares": 0,
        "CpusetCpus": "",
        "CpusetMems": "",
        "DeviceCgroupRules": null,
        "DeviceRequests": null,
        "Devices": [],
        "Dns": [],
        "DnsOptions": null,
        "DnsSearch": null,
        "ExtraHosts": [],
        "GroupAdd": null,
        "IOMaximumBandwidth": 0,
        "IOMaximumIOps": 0,
        "Init": false,
        "IpcMode": "private",
        "Isolation": "",
        "KernelMemory": 0,
        "KernelMemoryTCP": 0,
        "Links": null,
        "LogConfig": {
            "Config": {},
            "Type": "json-file"
        },
        "MaskedPaths": [
            "/proc/asound",
            "/proc/acpi",
            "/proc/kcore",
            "/proc/keys",
            "/proc/latency_stats",
            "/proc/timer_list",
            "/proc/timer_stats",
            "/proc/sched_debug",
            "/proc/scsi",
            "/sys/firmware"
        ],
        "Memory": 0,
        "MemoryReservation": 0,
        "MemorySwap": 0,
        "MemorySwappiness": null,
        "NanoCpus": 0,
        "NetworkMode": "bridge",
        "OomKillDisable": null,
        "OomScoreAdj": 0,
        "PidMode": "",
        "PidsLimit": null,
        "PortBindings": {
            "8080/tcp": [
                {
                    "HostIp": "",
                    "HostPort": "9991"
                }
            ]
        },
        "Privileged": false,
        "PublishAllPorts": false,
        "ReadonlyPaths": [
            "/proc/bus",
            "/proc/fs",
            "/proc/irq",
            "/proc/sys",
            "/proc/sysrq-trigger"
        ],
        "ReadonlyRootfs": false,
        "RestartPolicy": {
            "MaximumRetryCount": 0,
            "Name": "no"
        },
        "Runtime": "runc",
        "SecurityOpt": null,
        "ShmSize": 67108864,
        "UTSMode": "",
        "Ulimits": null,
        "UsernsMode": "",
        "VolumeDriver": "",
        "VolumesFrom": null
    },
    "HostnamePath": "/var/lib/docker/containers/02e352af8f424523ba49c69726e9969e217f0b616c513a6e35c540f09244197b/hostname",
    "HostsPath": "/var/lib/docker/containers/02e352af8f424523ba49c69726e9969e217f0b616c513a6e35c540f09244197b/hosts",
    "Id": "02e352af8f424523ba49c69726e9969e217f0b616c513a6e35c540f09244197b",
    "Image": "sha256:0ed3a00dd21d60a0c79db7e5f8e1400ca492eb32690a5ad3ed5f41edeb2990c8",
    "LogPath": "/var/lib/docker/containers/02e352af8f424523ba49c69726e9969e217f0b616c513a6e35c540f09244197b/02e352af8f424523ba49c69726e9969e217f0b616c513a6e35c540f09244197b-json.log",
    "MountLabel": "",
    "Mounts": [
        {
            "Destination": "/config",
            "Mode": "",
            "Propagation": "rprivate",
            "RW": true,
            "Source": "/srv/dev-disk-by-label-2TB_Rpi/komga/config",
            "Type": "bind"
        },
        {
            "Destination": "/books",
            "Mode": "",
            "Propagation": "rprivate",
            "RW": true,
            "Source": "/srv/dev-disk-by-label-2TB_Rpi/komga/books",
            "Type": "bind"
        },
        {
            "Destination": "/tmp",
            "Driver": "local",
            "Mode": "z",
            "Name": "522788f890db61bedbc9d9b94f559240014139cf59029ba69e2152c17f73c0e7",
            "Propagation": "",
            "RW": true,
            "Source": "/var/lib/docker/volumes/522788f890db61bedbc9d9b94f559240014139cf59029ba69e2152c17f73c0e7/_data",
            "Type": "volume"
        }
    ],
    "Name": "/Komga",
    "NetworkSettings": {
        "Bridge": "",
        "EndpointID": "f0243b36c56ff48b8b44dfcba913f011ebd4d5508fd989f2f69541885dbacb1b",
        "Gateway": "172.17.0.1",
        "GlobalIPv6Address": "",
        "GlobalIPv6PrefixLen": 0,
        "HairpinMode": false,
        "IPAddress": "172.17.0.4",
        "IPPrefixLen": 16,
        "IPv6Gateway": "",
        "LinkLocalIPv6Address": "",
        "LinkLocalIPv6PrefixLen": 0,
        "MacAddress": "02:42:ac:11:00:04",
        "Networks": {
            "bridge": {
                "Aliases": null,
                "DriverOpts": null,
                "EndpointID": "f0243b36c56ff48b8b44dfcba913f011ebd4d5508fd989f2f69541885dbacb1b",
                "Gateway": "172.17.0.1",
                "GlobalIPv6Address": "",
                "GlobalIPv6PrefixLen": 0,
                "IPAMConfig": {},
                "IPAddress": "172.17.0.4",
                "IPPrefixLen": 16,
                "IPv6Gateway": "",
                "Links": null,
                "MacAddress": "02:42:ac:11:00:04",
                "NetworkID": "eb2aca75d4abecec375cb4b90242332514b8a840d73e39e96411ea00af5bc9bf"
            }
        },
        "Ports": {
            "8080/tcp": [
                {
                    "HostIp": "0.0.0.0",
                    "HostPort": "9991"
                }
            ]
        },
        "SandboxID": "6e8281424908b82197c229b682eed5f9af07b4ffe5598f18b8ecb534a9e6e18e",
        "SandboxKey": "/var/run/docker/netns/6e8281424908",
        "SecondaryIPAddresses": null,
        "SecondaryIPv6Addresses": null
    },
    "Path": "java",
    "Platform": "linux",
    "Portainer": {
        "ResourceControl": {
            "Id": 59,
            "ResourceId": "02e352af8f424523ba49c69726e9969e217f0b616c513a6e35c540f09244197b",
            "SubResourceIds": [],
            "Type": 1,
            "UserAccesses": [],
            "TeamAccesses": [],
            "Public": false,
            "AdministratorsOnly": true,
            "System": false
        }
    },
    "ProcessLabel": "",
    "ResolvConfPath": "/var/lib/docker/containers/02e352af8f424523ba49c69726e9969e217f0b616c513a6e35c540f09244197b/resolv.conf",
    "RestartCount": 0,
    "State": {
        "Dead": false,
        "Error": "",
        "ExitCode": 0,
        "FinishedAt": "0001-01-01T00:00:00Z",
        "OOMKilled": false,
        "Paused": false,
        "Pid": 32543,
        "Restarting": false,
        "Running": true,
        "StartedAt": "2020-11-01T17:43:58.365261479Z",
        "Status": "running"
    }
}```

@gotson
Copy link
Owner

gotson commented Nov 2, 2020

Thanks for the details. Unfortunately without a proper repro it will be difficult to solve.

If you have basic skills in Java and Docker you could try troubleshooting the base image on your machine, like trying to run a simple hello world in Java with that base image, and see if it works or if you get the same error.

@alejandrofm
Copy link
Author

Java isn't my preferred language but maybe I can give it a try...next weekend.
I'am the only one with this problem? Maybe it's something on my side(?)
Thanks!

@gotson
Copy link
Owner

gotson commented Nov 3, 2020

A quick google search returned this: https://github.com/smartsheet-samples/docker-java-hello-world

The base image used in Komga is adoptopenjdk:11-jre-hotspot, it is a multi-arch image, so using it on an arm32 machine will pull the arm32 image.

@gotson gotson added the bug Something isn't working label Nov 4, 2020
@gotson
Copy link
Owner

gotson commented Nov 4, 2020

Could you also check version 0.64.4 and confirm if the same problem happens?

@alejandrofm
Copy link
Author

Could you also check version 0.64.4 and confirm if the same problem happens?

Same error, something changed between 0.64.2 and 0.64.3.
I'm the only one with this issue? :P
Thanks!

@siddjellali
Copy link

siddjellali commented Nov 16, 2020

From my side! Everything is perfect :)
I'm on the last version of Docker 'version 19.03.13, build 4484c46' on Synology.

Sorry for the last comment, refresh was not finish ^^

@OIDAM98
Copy link

OIDAM98 commented Nov 17, 2020

I have the same error running the latest version from Docker.
Running on a Rapsberry Pi 4, 4 GB Ram, Raspbian 32bits.

Same error:

OpenJDK Server VM warning: No monotonic clock was available - timed services may be adversely affected if the time-of-day clock changes
And the logs stay there forever.

Seems like version 0.64.1 and 0.64.2 does start the application.

@OIDAM98
Copy link

OIDAM98 commented Nov 17, 2020

@siddjellali did you get the latest version running with Docker?

@siddjellali
Copy link

@OIDAM98 yes #349 (comment)

@OIDAM98
Copy link

OIDAM98 commented Nov 17, 2020

@siddjellali can you share how did you do it?
My docker command to start komga is:

docker run -d \
 --name=komga \
 -p 8100:8080 \
 -e PUID=1000 \
 -e PGID=1000 \
 -e SPRING_PROFILE_ACTIVE=claim \
 --mount type=bind,source=/srv/komga/config,target=/config \
 --mount type=bind,source=/media/multimedia/Multimedia/Manga,target=/books \
 --restart unless-stopped \
 gotson/komga:latest

Changed --user 1000:1000 to -e PUID=1000 \ -e PGID=1000, otherwise komga wouldn't have the permissions to create files.

And have to change the tag to 0.64.2 to run it. Leaving it with latest only yields the log message I mentioned before.
I have the same Docker version as you.

@gotson
Copy link
Owner

gotson commented Nov 18, 2020

@OIDAM98 PUID / PGID have no effect at all, those are variables used by linuxserver.io images. Your container is basically running as root

You probably have missing permissions on your mounts, if you want to run as non-root you need to get the ID of your user account (on host system), and ensure that account has access to the folders mounted in the container.

SPRING_PROFILE_ACTIVE=claim is not used anymore, you can remove it.

@gotson
Copy link
Owner

gotson commented Nov 18, 2020

From my side! Everything is perfect :)
I'm on the last version of Docker 'version 19.03.13, build 4484c46' on Synology.

Sorry for the last comment, refresh was not finish ^^

What's your synology model?

@siddjellali
Copy link

It's a DS918+
Please find below the docker compose i used 👍

version: "3.3"
services:
  komga:
    image: gotson/komga:latest
    container_name: komga
    networks:
      - t2_proxy
    environment:
      - PUID=1033
      - PGID=100
      - TZ=Europe/Paris
    volumes:
      - /volume1/docker/komga:/config
      - /volume1/Comics:/books
    ports:
      - 8055:8080
    restart: unless-stopped
    environment : 
     - JAVA_TOOL_OPTIONS=-Xmx4g

networks:
  t2_proxy:
    external: true

Regarding PUID and PGID, you have to create a user first in your syno, go to SSH and type command below to retreive the correct value :

$ id komga
uid=1031(komga) gid=100(users) groups=100(users)

@OIDAM98
Copy link

OIDAM98 commented Nov 18, 2020

@OIDAM98 PUID / PGID have no effect at all, those are variables used by linuxserver.io images. Your container is basically running as root

You probably have missing permissions on your mounts, if you want to run as non-root you need to get the ID of your user account (on host system), and ensure that account has access to the folders mounted in the container.

SPRING_PROFILE_ACTIVE=claim is not used anymore, you can remove it.

As you said, the problem was the ownership of the folders. The user ID I gave the container didn't have the permissions.
Thanks for that tip!

On the other hand, I still get the same message running latest.

@gotson
Copy link
Owner

gotson commented Nov 19, 2020

It's a DS918+

This is a x86 64 cpu. It's normal that it works with latest. I don't know why you arrived on this issue, but it has nothing to do with your cpu model. Glad it works for you, but please let's stay on topic here 🙂

@gotson gotson changed the title [Bug] Error starting on docker version 0.64.3 [Bug] Error starting on docker version 0.64.3 for arm 32 Nov 25, 2020
@gotson gotson added the help wanted Extra attention is needed label Nov 25, 2020
@gotson
Copy link
Owner

gotson commented Nov 25, 2020

I reiterate my request for help: if someone who owns a raspberry pi 32 bits, who has some understanding in docker and java, would be willing to help troubleshooting this issue, that would be appreciated. You can also reach me on Discord.

@OIDAM98
Copy link

OIDAM98 commented Nov 25, 2020

I can create a simple Hello World app in Scala and dockerize it using adoptopenjdk:11-jre-hotspot as base image to see if that's the source of the problem.
I think by the end of the week I can do it, hopefully tomorrow.

@gotson
Copy link
Owner

gotson commented Nov 25, 2020

For those who have the issue, could you please tell me :

  • what is your hardware
  • which os you are running on that hardware

Thanks

@OIDAM98
Copy link

OIDAM98 commented Nov 25, 2020

OS: Raspbian lite 10 armv7l 32 bits.
Kernel: 5.4.72-v7l+
Docker: 19.03.13, build 4484c46
Hardware:

  • Raspberry Pi 4 Model B Rev 1.2, 4 GB Ram
  • Booting from a Kingston SSD A400 120GB SATA 3

@gotson
Copy link
Owner

gotson commented Nov 25, 2020

I can create a simple Hello World app in Scala and dockerize it using adoptopenjdk:11-jre-hotspot as base image to see if that's the source of the problem.
I think by the end of the week I can do it, hopefully tomorrow.

Thanks, that would be helpful. If you manage to reproduce, it would help to go back in time with older versions of the base image to find out which ones work and which don't, and we can submit an issue on their github!

@OIDAM98
Copy link

OIDAM98 commented Nov 30, 2020

Hello! Sorry for the late response.
I managed to create the docker container using adoptopenjdk:11-jre-hotspot as base image.
It printed out the same message:
OpenJDK Server VM warning: No monotonic clock was available - timed services may be adversely affected if the time-of-day clock changes
but it also printed the Hello, World! statement after a few seconds (maybe 2 seconds to be precise).

docker-jdk-pi

So, maybe it just takes longer to set up komga and we have to wait longer to see anything in the console..?
Or maybe a step during the initial set up of komga is lingering and is not outputting anything to STDOUT.
I'm not quite sure.

@gotson
Copy link
Owner

gotson commented Dec 1, 2020

The outcome is not important, it shows the same symptom, which is what we need to raise an issue upstream.

Do you have a link to the repo with the sample? That way I can raise the issue upstream.

@OIDAM98
Copy link

OIDAM98 commented Dec 1, 2020

Sure! Just created the repository, here's the link:
https://github.com/OIDAM98/openjdk-docker-arm

@gotson
Copy link
Owner

gotson commented Dec 3, 2020

I have published an image gotson/komga:bionic which could fix the problem.

If you have the issue mentioned above, please give it a try and let me know if that fixes the issue.

@OIDAM98
Copy link

OIDAM98 commented Dec 3, 2020

Will give it a try tomorrow and update to you about the results.

@gotson gotson closed this as completed in 85fe674 Dec 3, 2020
gotson pushed a commit that referenced this issue Dec 3, 2020
## [0.64.6](v0.64.5...v0.64.6) (2020-12-03)

### Bug Fixes

* use bionic base image ([85fe674](85fe674)), closes [#349](#349)
@gotson
Copy link
Owner

gotson commented Dec 3, 2020

🎉 This issue has been resolved in version 0.64.6 🎉

The release is available on:

Your semantic-release bot 📦🚀

@gotson gotson added the released label Dec 3, 2020
@alejandrofm
Copy link
Author

Working great here! thanks to all!

@OIDAM98
Copy link

OIDAM98 commented Dec 3, 2020

Can confirm, working both bionic and 0.64.6 versions on RPi 4.

github-actions bot pushed a commit to tahngarth/komga that referenced this issue Jan 6, 2021
# [0.30.0](v0.29.1...v0.30.0) (2021-01-06)

### Bug Fixes

* fix sqlite library detection for aarch64 ([10df531](10df531))
* **opds:** duplicate series if in multiple collections ([c7e6209](c7e6209)), closes [gotson#363](https://github.com/tahngarth/komga/issues/363)
* don't append volume to series title if equals to 1 ([1cb9ae6](1cb9ae6)), closes [gotson#347](https://github.com/tahngarth/komga/issues/347)
* enhanced logging for sqlite native lib loading ([f1a894d](f1a894d))
* scanner crashes if folders are not readable ([f43a386](f43a386)), closes [gotson#342](https://github.com/tahngarth/komga/issues/342)
* use bionic base image ([85fe674](85fe674)), closes [gotson#349](https://github.com/tahngarth/komga/issues/349)
* **api:** support accept header in getBookPage ([gotson#352](https://github.com/tahngarth/komga/issues/352)) ([e123d38](e123d38)), closes [gotson#350](https://github.com/tahngarth/komga/issues/350)
* native webp library ([15caea3](15caea3)), closes [gotson#279](https://github.com/tahngarth/komga/issues/279)
* use own distrib of sqlite with freebsd support ([3d2793a](3d2793a)), closes [gotson#319](https://github.com/tahngarth/komga/issues/319)
* **api:** incorrect parameter type ([342f04c](342f04c))
* **api:** large file download ([d100db2](d100db2))
* **api:** openAPI spec fields marked as required ([8f228db](8f228db)), closes [gotson#308](https://github.com/tahngarth/komga/issues/308)
* **opds:** cannot download file with semicolon in filename ([e1e251e](e1e251e)), closes [gotson#309](https://github.com/tahngarth/komga/issues/309)
* **opds:** latest series sort inverted ([bddc008](bddc008)), closes [gotson#301](https://github.com/tahngarth/komga/issues/301)
* **opds:** url encode publisher query param ([8347fdc](8347fdc)), closes [gotson#335](https://github.com/tahngarth/komga/issues/335)
* **webreader:** images smaller than viewport would not fill width ([81d9a00](81d9a00)), closes [gotson#311](https://github.com/tahngarth/komga/issues/311)
* trim and lowercase tags and genres in metadata ([656f23a](656f23a)), closes [gotson#302](https://github.com/tahngarth/komga/issues/302)
* **api:** do not return empty language ([2ab3c9c](2ab3c9c))
* **webreader:** incorrect display on safari and firefox ([22b0b7e](22b0b7e)), closes [gotson#262](https://github.com/tahngarth/komga/issues/262)
* **webreader:** webtoon reader not loading images ([1a030b4](1a030b4)), closes [gotson#259](https://github.com/tahngarth/komga/issues/259)
* **webui:** change grid size for sm screens ([18280be](18280be))
* **webui:** clear selection after action performed ([e0cff70](e0cff70)), closes [gotson#303](https://github.com/tahngarth/komga/issues/303)
* **webui:** compute scrollability on mount, fix right chevron when using display scaling ([8928959](8928959))
* **webui:** contextual filters ([f515819](f515819)), closes [gotson#290](https://github.com/tahngarth/komga/issues/290)
* **webui:** correct label in library edit dialog ([c532e50](c532e50))
* **webui:** disable filter panels with no values ([57cc6c4](57cc6c4))
* **webui:** edit series dialog could incorrectly display MIXED placeholder ([5d3f061](5d3f061))
* **webui:** field should not display if empty ([968e297](968e297))
* **webui:** filter values could be duplicated ([e91954f](e91954f))
* **webui:** restore library filter for language and age rating ([dc064f2](dc064f2))
* **webui:** theme is not restored properly ([432dc91](432dc91)), closes [gotson#304](https://github.com/tahngarth/komga/issues/304)
* database migration could fail ([1c9f3d0](1c9f3d0))
* database migration failure ([2ca6077](2ca6077))
* **analysis:** page number was not persisted ([99f800c](99f800c)), closes [gotson#189](https://github.com/tahngarth/komga/issues/189)
* **api:** add count of in progress books in SeriesDto ([0d2713a](0d2713a)), closes [gotson#25](https://github.com/tahngarth/komga/issues/25)
* **api:** add missing sort fields for Books ([797535d](797535d))
* **api:** books could disappear for users if read by others ([3d1f0e0](3d1f0e0))
* **api:** collection without element would return incorrect dto ([0891981](0891981))
* **api:** incorrect number of books per series ([bf2d0ba](bf2d0ba))
* **api:** incorrect number of books returned ([544c873](544c873)), closes [gotson#177](https://github.com/tahngarth/komga/issues/177)
* **api:** pagination for collection's series ([6dd0704](6dd0704))
* **api:** sort libraries case insensitive ([1650aec](1650aec))
* **docker:** docker image doesn't start ([8bce80b](8bce80b))
* **metadata:** recognize ComicInfo Day tag and "MA15+" rating ([3ad438d](3ad438d))
* **opds:** prepend position for series in ordered collection ([7e5a141](7e5a141))
* **webreader:** cycle image fit would not persist setting ([e5272d2](e5272d2))
* **webui:** missing settings icon in webreader ([9693829](9693829))
* fix database migration errors ([f84ba17](f84ba17)), closes [gotson#239](https://github.com/tahngarth/komga/issues/239) [gotson#238](https://github.com/tahngarth/komga/issues/238) [gotson#237](https://github.com/tahngarth/komga/issues/237) [gotson#240](https://github.com/tahngarth/komga/issues/240)
* ignore blank metadata fields ([c8c5df2](c8c5df2)), closes [gotson#288](https://github.com/tahngarth/komga/issues/288)
* incorrect book number after adding book in series ([3b1eb36](3b1eb36)), closes [gotson#269](https://github.com/tahngarth/komga/issues/269)
* incorrect read progress for books ([107d7db](107d7db)), closes [gotson#286](https://github.com/tahngarth/komga/issues/286)
* potential incorrect read progress for series ([7b90244](7b90244))
* series genre is not imported from metadata ([58fac36](58fac36))
* series genre is not imported from metadata ([d0815dd](d0815dd))
* **api:** exception on unpaged empty content ([2cc27f2](2cc27f2))
* **scanner:** add TRACE logs for file update times ([5433567](5433567)), closes [gotson#159](https://github.com/tahngarth/komga/issues/159)
* **webui:** action menu not showing for non-admin ([e60666c](e60666c))
* **webui:** adjust padding for grids ([02e9168](02e9168))
* **webui:** adjust series unread count when marking books ([31e21fe](31e21fe))
* **webui:** browse collection should show all series ([8629ea9](8629ea9)), closes [gotson#226](https://github.com/tahngarth/komga/issues/226)
* **webui:** clear selection when reloading search results ([7d808c5](7d808c5))
* **webui:** display collection after adding in series browsing screen ([8ce5a39](8ce5a39))
* **webui:** drag series by handle when editing collection ([e72f4ab](e72f4ab)), closes [gotson#214](https://github.com/tahngarth/komga/issues/214)
* **webui:** filter status not reset properly when changing library ([fea5431](fea5431))
* **webui:** incorrect count of collections in browse collections screen ([2254929](2254929))
* **webui:** lazy http call for CollectionEditDialog ([4716a1b](4716a1b))
* **webui:** lazy load collections on browse series ([d89533d](d89533d))
* **webui:** library navigation not highlighted correctly ([e28c070](e28c070))
* **webui:** make card title as link ([d6e4b80](d6e4b80)), closes [gotson#224](https://github.com/tahngarth/komga/issues/224)
* **webui:** missing settings icon in sidebar ([b9e4bea](b9e4bea))
* **webui:** prevent cropping on book thumbnails ([e038857](e038857)), closes [gotson#191](https://github.com/tahngarth/komga/issues/191)
* **webui:** read button link underline on hover ([863258d](863258d))
* **webui:** reset edit book dialog to first tab on reopen ([5760a06](5760a06))
* **webui:** thumbnails explorer navigation misaligned ([2ffed28](2ffed28))
* **webui:** update option title in library dialog ([29d9726](29d9726))
* order of pages is not loaded correctly from database ([d2288dd](d2288dd)), closes [gotson#189](https://github.com/tahngarth/komga/issues/189)
* properly expand home dir in config ([5d86d3e](5d86d3e)), closes [gotson#195](https://github.com/tahngarth/komga/issues/195) [gotson#203](https://github.com/tahngarth/komga/issues/203)
* some PDF pages are blurry ([9ad1cfe](9ad1cfe)), closes [gotson#260](https://github.com/tahngarth/komga/issues/260)
* **webui:** replace mark as read/unread buttons with icons ([709ee1e](709ee1e))
* **webui:** series grid not expanding to full width ([2f7d2a4](2f7d2a4))
* **webui:** simplify unread filter ([bb60f10](bb60f10))
* **webui:** unread tick not showing properly on books ([0d0b998](0d0b998))
* **webui:** use pagination for browsing screens ([5867db7](5867db7)), closes [gotson#91](https://github.com/tahngarth/komga/issues/91)
* **webui:** wider display for collection expansion panel ([96c95ea](96c95ea))
* strip accented characters for title sort when creating series ([6f1e36e](6f1e36e)), closes [gotson#188](https://github.com/tahngarth/komga/issues/188)

### Features

* **api:** filter /series endpoint by library_id ([1603a96](1603a96)), closes [gotson#360](https://github.com/tahngarth/komga/issues/360)
* append volume to series name ([2567796](2567796)), closes [gotson#343](https://github.com/tahngarth/komga/issues/343) [gotson#132](https://github.com/tahngarth/komga/issues/132)
* **api:** filter collection's series ([cfa06a9](cfa06a9))
* **api:** filter referential data by library or series ([982983e](982983e)), closes [gotson#290](https://github.com/tahngarth/komga/issues/290)
* **api:** get all age ratings ([be80d86](be80d86))
* **api:** get all languages ([115ad42](115ad42))
* **api:** get all publishers ([1929061](1929061))
* **api:** get referential data by collection ([d7fd296](d7fd296))
* **api:** http eTag caching for all API calls ([fe22cb5](fe22cb5))
* **api:** search books by tag ([f46f1a0](f46f1a0))
* **api:** search series by age rating ([f51d575](f51d575))
* **api:** search series by genre ([da4a0aa](da4a0aa))
* **api:** search series by language ([723d7c1](723d7c1))
* **api:** search series by publisher ([e4b0b2d](e4b0b2d))
* **api:** search series by tag ([7bd1de6](7bd1de6))
* **api:** search series' books by tag ([940d5d3](940d5d3))
* **api:** unpaged queries for books ([8f8054e](8f8054e))
* **opds:** browse series by publishers ([f3fcab4](f3fcab4)), closes [gotson#332](https://github.com/tahngarth/komga/issues/332)
* **opds:** recently added books ([dd7bc9c](dd7bc9c)), closes [gotson#327](https://github.com/tahngarth/komga/issues/327)
* order books by release date ([e3bb8bc](e3bb8bc)), closes [gotson#318](https://github.com/tahngarth/komga/issues/318)
* **webreader:** add double page no cover layout ([5fe015e](5fe015e)), closes [gotson#103](https://github.com/tahngarth/komga/issues/103)
* **webreader:** add shortcut information menu ([1885f32](1885f32))
* **webui:** add system theme option ([8f22f01](8f22f01))
* **webui:** change internals for shortcuts. add new shortcuts for settings ([b402817](b402817)), closes [gotson#172](https://github.com/tahngarth/komga/issues/172)
* **webui:** dark theme ([efe2021](efe2021)), closes [gotson#179](https://github.com/tahngarth/komga/issues/179)
* **webui:** filter collection content ([fc905ef](fc905ef)), closes [gotson#270](https://github.com/tahngarth/komga/issues/270)
* **webui:** filter series by age rating ([01eef83](01eef83))
* handle multiple story arcs in ComicInfoProvider ([f4451bf](f4451bf)), closes [gotson#282](https://github.com/tahngarth/komga/issues/282)
* **webreader:** better display of landscape images ([09984a4](09984a4)), closes [gotson#123](https://github.com/tahngarth/komga/issues/123)
* **webreader:** side padding, original scaling for Webtoon ([6499788](6499788)), closes [gotson#266](https://github.com/tahngarth/komga/issues/266) [gotson#264](https://github.com/tahngarth/komga/issues/264)
* **webreader:** webtoon reader, fit to screen ([44c814a](44c814a)), closes [gotson#81](https://github.com/tahngarth/komga/issues/81) [gotson#145](https://github.com/tahngarth/komga/issues/145)
* **webui:** color coded chips for series status ([fb8a8c4](fb8a8c4))
* **webui:** handle new metadata fields ([5567adc](5567adc)), closes [gotson#276](https://github.com/tahngarth/komga/issues/276)
* **webui:** more filter criteria ([4d22d9c](4d22d9c)), closes [gotson#283](https://github.com/tahngarth/komga/issues/283) [gotson#34](https://github.com/tahngarth/komga/issues/34)
* **webui:** navigation drawer for sort/filter ([28598cb](28598cb)), closes [gotson#283](https://github.com/tahngarth/komga/issues/283)
* add/rearrange metadata fields ([9e406e3](9e406e3)), closes [gotson#276](https://github.com/tahngarth/komga/issues/276)
* **webui:** read lists ([27edf17](27edf17)), closes [gotson#106](https://github.com/tahngarth/komga/issues/106)
* read lists ([f0c864f](f0c864f)), closes [gotson#106](https://github.com/tahngarth/komga/issues/106)
* **webui:** library option to import local artwork ([cba0a2e](cba0a2e))
* **webui:** navigate to series books from book details screen ([48e92c7](48e92c7)), closes [gotson#272](https://github.com/tahngarth/komga/issues/272)
* library option to import local artwork ([eefb802](eefb802))
* **webui:** scanner option per library ([fca0180](fca0180))
* change database from H2 to SQLite ([20b2b39](20b2b39)), closes [gotson#218](https://github.com/tahngarth/komga/issues/218)
* custom thumbnails for series ([f5f423f](f5f423f)), closes [gotson#63](https://github.com/tahngarth/komga/issues/63)
* get images dimension during media analysis ([f9d55ec](f9d55ec)), closes [gotson#123](https://github.com/tahngarth/komga/issues/123)
* scanner option per library ([4da6ff9](4da6ff9))
* sidecar thumbnails for books ([d01b29f](d01b29f))
* **analysis:** handle read progress during book analysis ([1fc893e](1fc893e))
* **api:** add read_status parameter to series books ([fc5c502](fc5c502)), closes [gotson#25](https://github.com/tahngarth/komga/issues/25)
* **api:** add read/unread books count in SeriesDto ([3ca50d7](3ca50d7)), closes [gotson#25](https://github.com/tahngarth/komga/issues/25)
* **api:** claim status ([47dd2f6](47dd2f6)), closes [gotson#207](https://github.com/tahngarth/komga/issues/207)
* **api:** collections are pageable ([449a27e](449a27e)), closes [gotson#216](https://github.com/tahngarth/komga/issues/216)
* **api:** collections management ([c2f9403](c2f9403)), closes [gotson#30](https://github.com/tahngarth/komga/issues/30)
* **api:** manage book read progress per user ([17c80cd](17c80cd)), closes [gotson#25](https://github.com/tahngarth/komga/issues/25)
* **api:** mark all books in series as read or unread ([75b7216](75b7216)), closes [gotson#25](https://github.com/tahngarth/komga/issues/25)
* **api:** metadata import settings per library ([6824212](6824212)), closes [gotson#199](https://github.com/tahngarth/komga/issues/199)
* **api:** on deck books ([1b6a030](1b6a030)), closes [gotson#131](https://github.com/tahngarth/komga/issues/131)
* **api:** read progress as search criteria for Series ([885c891](885c891)), closes [gotson#25](https://github.com/tahngarth/komga/issues/25)
* **api:** restrict page streaming and file download with roles ([6291dab](6291dab)), closes [gotson#146](https://github.com/tahngarth/komga/issues/146)
* **api:** search books by read status ([7f3c492](7f3c492)), closes [gotson#25](https://github.com/tahngarth/komga/issues/25)
* **api:** search series by collection ids ([ca91af7](ca91af7))
* **opds:** browse by collection ([15f9c82](15f9c82))
* **webreader:** display reading direction on book opening ([ebf2aac](ebf2aac))
* **webreader:** mark progress while reading ([10895a3](10895a3)), closes [gotson#25](https://github.com/tahngarth/komga/issues/25)
* **webui:** action menu on item cards ([37d790d](37d790d))
* **webui:** add On Deck section on dashboard ([37c935e](37c935e)), closes [gotson#131](https://github.com/tahngarth/komga/issues/131)
* **webui:** add read status filter when browsing Series ([cc39ce8](cc39ce8)), closes [gotson#25](https://github.com/tahngarth/komga/issues/25)
* **webui:** add simple next/previous book buttons to reader toolbar ([e428115](e428115)), closes [gotson#233](https://github.com/tahngarth/komga/issues/233)
* **webui:** claim server from login screen ([d4810bd](d4810bd)), closes [gotson#207](https://github.com/tahngarth/komga/issues/207)
* generate collections from ComicInfo SeriesGroup ([277cdcd](277cdcd)), closes [gotson#210](https://github.com/tahngarth/komga/issues/210)
* **webui:** allow direct input of library path in add dialog ([6ece7b1](6ece7b1)), closes [gotson#88](https://github.com/tahngarth/komga/issues/88)
* **webui:** better handling of library deletion ([0297210](0297210))
* **webui:** collection edition on card in browse collections ([e45389d](e45389d))
* **webui:** collection edition on card in search results ([68fe4fd](68fe4fd))
* **webui:** collections management ([2f8255a](2f8255a)), closes [gotson#30](https://github.com/tahngarth/komga/issues/30)
* **webui:** display collections in search results and search box ([82aec45](82aec45)), closes [gotson#212](https://github.com/tahngarth/komga/issues/212)
* **webui:** display unread count on series card ([4962f17](4962f17)), closes [gotson#25](https://github.com/tahngarth/komga/issues/25)
* **webui:** enable edit on books and series cards in search screen ([32dad62](32dad62))
* **webui:** hide pagination when there is only 1 page ([675b4a1](675b4a1))
* **webui:** keep reading section in dashboard ([7984cef](7984cef)), closes [gotson#131](https://github.com/tahngarth/komga/issues/131)
* **webui:** mark books as read or unread ([24c994f](24c994f)), closes [gotson#25](https://github.com/tahngarth/komga/issues/25)
* **webui:** mark series as read/unread ([4d7e243](4d7e243)), closes [gotson#25](https://github.com/tahngarth/komga/issues/25)
* **webui:** metadata import settings per library ([521cc42](521cc42)), closes [gotson#199](https://github.com/tahngarth/komga/issues/199)
* **webui:** multi-select in dashboard page ([8e33be7](8e33be7))
* **webui:** multi-select in search results page ([c5417ac](c5417ac)), closes [gotson#213](https://github.com/tahngarth/komga/issues/213)
* **webui:** pagination for collections ([50b516d](50b516d)), closes [gotson#216](https://github.com/tahngarth/komga/issues/216)
* **webui:** read button on item card ([a59f263](a59f263)), closes [gotson#133](https://github.com/tahngarth/komga/issues/133)
* **webui:** read progress filter for Series when browsing Libraries ([0c046a7](0c046a7)), closes [gotson#25](https://github.com/tahngarth/komga/issues/25)
* **webui:** refresh browse collection screen on action menu actions ([8f2c453](8f2c453))
* **webui:** refresh dashboard on action menu actions ([b6bd735](b6bd735))
* **webui:** restrict page streaming and file download per user ([381b196](381b196)), closes [gotson#146](https://github.com/tahngarth/komga/issues/146)
* **webui:** search results page ([89039a4](89039a4)), closes [gotson#29](https://github.com/tahngarth/komga/issues/29)
* **webui:** sort/filter settings are persisted per library ([bf737de](bf737de)), closes [gotson#190](https://github.com/tahngarth/komga/issues/190)
* automatic database backup ([bbb9f7c](bbb9f7c)), closes [gotson#138](https://github.com/tahngarth/komga/issues/138)
* migrate DAO from Hibernate to jOOQ ([75e1079](75e1079))
* switch to JRE for docker image ([3206495](3206495))

### Performance Improvements

* add sql indexes ([41f3e8d](41f3e8d))
* lazy sql joins ([6eb7669](6eb7669))
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Sep 2, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working help wanted Extra attention is needed released
Projects
None yet
Development

No branches or pull requests

5 participants