komga: Failed to load native library:sqlite-3.36.0.3

Steps to reproduce

Run docker-compose up -d on libreelec (rpi pi4) with docker-compose.yml from the documentation

Expected behavior

Komga should start without crashing

Actual behavior

It crashes

Logs

komga-logs.txt

Komga version

0.157.2

Operating system

Libreelec 10.0.2

Other details

uname -a
Linux LibreELEC 5.10.95 #⁠1 SMP Sat Mar 5 15:50:44 CET 2022 aarch64 GNU/Linux
lscpu
Architecture:                    aarch64
Byte Order:                      Little Endian
CPU(s):                          4
On-line CPU(s) list:             0-3
Thread(s) per core:              1
Core(s) per socket:              4
Socket(s):                       1
Vendor ID:                       ARM
Model:                           3
Model name:                      Cortex-A72
Stepping:                        r0p3
CPU max MHz:                     1500.0000
CPU min MHz:                     600.0000
BogoMIPS:                        108.50
Vulnerability Itlb multihit:     Not affected
Vulnerability L1tf:              Not affected
Vulnerability Mds:               Not affected
Vulnerability Meltdown:          Not affected
Vulnerability Spec store bypass: Vulnerable
Vulnerability Spectre v1:        Mitigation; __user pointer sanitization
Vulnerability Spectre v2:        Vulnerable
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Not affected
Flags:                           fp asimd evtstrm crc32 cpuid
java --version
openjdk 11.0.16.1 2022-08-12
OpenJDK Runtime Environment Temurin-11.0.16.1+1 (build 11.0.16.1+1)
OpenJDK Server VM Temurin-11.0.16.1+1 (build 11.0.16.1+1, mixed mode, sharing)

PS: This seem related to #945, but it looks like it isn’t the same exactly?

Acknowledgements

  • I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open issue.
  • I have written a short but informative title.
  • I have checked the FAQ.
  • I have updated the app to the latest version.
  • I will fill out all of the requested information in this form.

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Comments: 42 (22 by maintainers)

Commits related to this issue

Most upvoted comments

Well it’s documented in sqlite-jdbc, but maybe the docker option could be mentioned somewhere in the komga doc?

It’s not Docker specific, JAVA_TOOL_OPTIONS is a well known option for anyone who used the JVM. This also don’t need to be in Komga IMH because it’s a very specific edge case, so i’m happy to handle this directly in troubleshooting issues.

@reyqn please have a look here https://github.com/xerial/sqlite-jdbc/blob/master/USAGE.md#override-detected-architecture

You can pass those options through the JAVA_TOOL_OPTIONS environment variable if you’re on Docker.

Yeah I thought the same, but I didn’t find any straightforward way to get the right container architecture… I’m not sure how other containers do this (I didn’t have any issues with jellyfin, wireguard and qbittorrent from the linuxserver fleet -well not architecture issues anyway-). Maybe they have a clean solution.

i suppose they are not in java and don’t need to dynamically load a library depending on the OS


I think having the option to override what’s detected is a safe choice. It should be possible to pass it via an environment variable, so it would solve the Docker problem. Given it’s an edge case, that would probably suffice.

Another idea would be to second-guess the existing uname-based detection when 64bits is detected on Linux, and in that case perform the file -L /bin/sh command to verify if it’s 64bits or not. That would however add an extra step every time for Linux 64bits system.