kagemomiji / airsonic-advanced

airsonic-advanced
GNU General Public License v3.0
174 stars 15 forks source link

[Bug]: Indexing files leads to permanent crash #130

Closed bartmans closed 1 year ago

bartmans commented 1 year ago

What happened?

Using airsonic-advanced-latest until now. Wanted to use the new Dockerimage from here.

First copied the folder and installed from Docker Compose. Airsonic came up without a problem with all my settings. When indexing Airsonic slowed down and ultimately crashed. Library consists of 97000 mp3s.

When restarting Airsonic crashed.

I then started fresh, without existing configuration. Same problem. At the top Airsonic used almost 5GB of memory during indexing the library.

Steps to reproduce

  1. Fresh install on Synology with latest image

  2. Start indexing library

  3. Wait long enough, around the 65000 mp3's it slows to a crawl, then stops.

Version

11.0.2 (Stable)

Version Detail

No response

Operating System

Synology Docker

Java Version

17

Database

Other

DB Detail

sqlite

Configuration paramter


version: "2.1" services: airsonic-advanced: image: ghcr.io/kagemomiji/airsonic-advanced:latest container_name: airsonic-advanced-kagemomiji environment:

Proxy Server

Nginx

client detail

All

language

Dutch

Relevant log output

First:
java.lang.OutOfMemoryError: Java heap space
2023-02-28 11:37:55.461  INFO --- o.a.p.s.m.JaudiotaggerParser             : Failed to find cover art tag in /music/Prince/Live/1985/SomeOne 2 Call (1985)/1985 Prince - Someone 2 Call/CD 4/Prince - Someone 2 Call - 0415. Delirious #2.mp3
java.lang.OutOfMemoryError: Java heap space
2023-02-28 11:37:56.852  INFO --- o.a.p.s.m.JaudiotaggerParser             : Failed to find cover art tag in /music/Prince/Live/1985/SomeOne 2 Call (1985)/1985 Prince - Someone 2 Call/CD 4/Prince - Someone 2 Call - 0416. Delirious #3.mp3
java.lang.OutOfMemoryError: Java heap space
2023-02-28 11:37:56.870  INFO --- o.a.p.s.CacheConfiguration$CacheLogger   : Cache Key: MEDIA_FILE-71250 | EventType: CREATED | Old value: null | New value: org.airsonic.player.domain.CoverArt@13bef6a3
2023-02-28 11:37:56.870  INFO --- o.a.p.s.CacheConfiguration$CacheLogger   : Cache Key: MEDIA_FILE-45094 | EventType: EVICTED | Old value: org.airsonic.player.domain.CoverArt@13b2974f | New value: null
2023-02-28 11:37:58.342  INFO --- o.a.p.s.m.JaudiotaggerParser             : Failed to find cover art tag in /music/Prince/Live/1985/SomeOne 2 Call (1985)/1985 Prince - Someone 2 Call/CD 4/Prince - Someone 2 Call - 0417. 1999 (Instr.).mp3
java.lang.OutOfMemoryError: Java heap space
2023-02-28 11:37:59.829  WARN --- o.a.p.s.m.JaudiotaggerParser             : Error when parsing tags in /music/Prince/Live/1985/SomeOne 2 Call (1985)/1985 Prince - Someone 2 Call/CD 4/Prince - Someone 2 Call - 0401. More Bounce To The Ounce.mp3
java.lang.OutOfMemoryError: Java heap space
2023-02-28 11:38:01.517  WARN --- o.a.p.s.m.JaudiotaggerParser             : Error when parsing tags in /music/Prince/Live/1985/SomeOne 2 Call (1985)/1985 Prince - Someone 2 Call/CD 4/Prince - Someone 2 Call - 0403. Bodyheat #2 (Bass).mp3
java.lang.OutOfMemoryError: Java heap space
2023-02-28 11:38:03.120  WARN --- o.a.p.s.m.JaudiotaggerParser             : Error when parsing tags in /music/Prince/Live/1985/SomeOne 2 Call (1985)/1985 Prince - Someone 2 Call/CD 4/Prince - Someone 2 Call - 0402. Bodyheat #1.mp3
java.lang.OutOfMemoryError: Java heap space
2023-02-28 11:38:04.626  WARN --- o.a.p.s.m.JaudiotaggerParser             : Error when parsing tags in /music/Prince/Live/1985/SomeOne 2 Call (1985)/1985 Prince - Someone 2 Call/CD 4/Prince - Someone 2 Call - 0404. Bodyheat #3 (Instr.).mp3
java.lang.OutOfMemoryError: Java heap space
2023-02-28 11:38:06.198  WARN --- o.a.p.s.m.JaudiotaggerParser             : Error when parsing tags in /music/Prince/Live/1985/SomeOne 2 Call (1985)/1985 Prince - Someone 2 Call/CD 4/Prince - Someone 2 Call - 0405. Temptation (Instr.).mp3
java.lang.OutOfMemoryError: Java heap space
2023-02-28 11:38:08.297  WARN --- o.a.p.s.m.JaudiotaggerParser             : Error when parsing tags in /music/Prince/Live/1985/SomeOne 2 Call (1985)/1985 Prince - Someone 2 Call/CD 4/Prince - Someone 2 Call - 0406. Guitar Jam - In A Spanish Villa (Guitar).mp3
java.lang.OutOfMemoryError: Java heap space
2023-02-28 11:38:09.872  WARN --- o.a.p.s.m.JaudiotaggerParser             : Error when parsing tags in /music/Prince/Live/1985/SomeOne 2 Call (1985)/1985 Prince - Someone 2 Call/CD 4/Prince - Someone 2 Call - 0408. Let's Go Crazy #1.mp3
java.lang.OutOfMemoryError: Java heap space
2023-02-28 11:38:11.418  WARN --- o.a.p.s.m.JaudiotaggerParser             : Error when parsing tags in /music/Prince/Live/1985/SomeOne 2 Call (1985)/1985 Prince - Someone 2 Call/CD 4/Prince - Someone 2 Call - 0407. Noon Rendez-Vous (Instr.).mp3
java.lang.OutOfMemoryError: Java heap space
2023-02-28 11:38:11.428  INFO --- o.a.p.s.CacheConfiguration$CacheLogger   : Cache Key: MEDIA_FILE-71393 | EventType: CREATED | Old value: null | New value: org.airsonic.player.domain.CoverArt@13bf07f4
2023-02-28 11:38:11.884  INFO --- o.a.p.s.CacheConfiguration$CacheLogger   : Cache Key: MEDIA_FILE-51983 | EventType: EVICTED | Old value: org.airsonic.player.domain.CoverArt@13b5d986 | New value: null
2023-02-28 11:38:12.926  WARN --- o.a.p.s.m.JaudiotaggerParser             : Error when parsing tags in /music/Prince/Live/1985/SomeOne 2 Call (1985)/1985 Prince - Someone 2 Call/CD 4/Prince - Someone 2 Call - 0409. When Doves Cry.mp3
java.lang.OutOfMemoryError: Java heap space
2023-02-28 11:38:14.348  WARN --- o.a.p.s.m.JaudiotaggerParser             : Error when parsing tags in /music/Prince/Live/1985/SomeOne 2 Call (1985)/1985 Prince - Someone 2 Call/CD 4/Prince - Someone 2 Call - 0410. Let's Go Crazy #2 (Instr.).mp3
java.lang.OutOfMemoryError: Java heap space
2023-02-28 11:38:15.802  WARN --- o.a.p.s.m.JaudiotaggerParser             : Error when parsing tags in /music/Prince/Live/1985/SomeOne 2 Call (1985)/1985 Prince - Someone 2 Call/CD 4/Prince - Someone 2 Call - 0411. Bodyheat #4.mp3
java.lang.OutOfMemoryError: Java heap space
2023-02-28 11:38:17.300  WARN --- o.a.p.s.m.JaudiotaggerParser             : Error when parsing tags in /music/Prince/Live/1985/SomeOne 2 Call (1985)/1985 Prince - Someone 2 Call/CD 4/Prince - Someone 2 Call - 0412. Let's Go Crazy #3.mp3
java.lang.OutOfMemoryError: Java heap space
2023-02-28 11:38:18.899  WARN --- o.a.p.s.m.JaudiotaggerParser             : Error when parsing tags in /music/Prince/Live/1985/SomeOne 2 Call (1985)/1985 Prince - Someone 2 Call/CD 4/Prince - Someone 2 Call - 0413. Let's Go Crazy #4.mp3
java.lang.OutOfMemoryError: Java heap space
2023-02-28 11:38:20.328  WARN --- o.a.p.s.m.JaudiotaggerParser             : Error when parsing tags in /music/Prince/Live/1985/SomeOne 2 Call (1985)/1985 Prince - Someone 2 Call/CD 4/Prince - Someone 2 Call - 0414. Delirious #1.mp3
java.lang.OutOfMemoryError: Java heap space
2023-02-28 11:38:22.027  WARN --- o.a.p.s.m.JaudiotaggerParser             : Error when parsing tags in /music/Prince/Live/1985/SomeOne 2 Call (1985)/1985 Prince - Someone 2 Call/CD 4/Prince - Someone 2 Call - 0415. Delirious #2.mp3
java.lang.OutOfMemoryError: Java heap space
2023-02-28 11:38:23.590  WARN --- o.a.p.s.m.JaudiotaggerParser             : Error when parsing tags in /music/Prince/Live/1985/SomeOne 2 Call (1985)/1985 Prince - Someone 2 Call/CD 4/Prince - Someone 2 Call - 0416. Delirious #3.mp3
java.lang.OutOfMemoryError: Java heap space
2023-02-28 11:38:25.065  WARN --- o.a.p.s.m.JaudiotaggerParser             : Error when parsing tags in /music/Prince/Live/1985/SomeOne 2 Call (1985)/1985 Prince - Someone 2 Call/CD 4/Prince - Someone 2 Call - 0417. 1999 (Instr.).mp3
java.lang.OutOfMemoryError: Java heap space
2023-02-28 11:38:25.204  INFO --- o.a.p.s.CacheConfiguration$CacheLogger   : Cache Key: MEDIA_FILE-71140 | EventType: CREATED | Old value: null | New value: org.airsonic.player.domain.CoverArt@13bee951
2023-02-28 11:38:25.204  INFO --- o.a.p.s.CacheConfiguration$CacheLogger   : Cache Key: MEDIA_FILE-67525 | EventType: EVICTED | Old value: org.airsonic.player.domain.CoverArt@13bd3390 | New value: null
2023-02-28 11:38:26.768  WARN --- o.a.p.s.m.JaudiotaggerParser             : Error when parsing tags in /music/Prince/Live/1985/SomeOne 2 Call (1985)/1985 Prince - Someone 2 Call/CD 3/Prince - Someone 2 Call - 0302. Bodyheat (Instr.).mp3
java.lang.OutOfMemoryError: Java heap space
2023-02-28 11:38:28.377  WARN --- o.a.p.s.m.JaudiotaggerParser             : Error when parsing tags in /music/Prince/Live/1985/SomeOne 2 Call (1985)/1985 Prince - Someone 2 Call/CD 3/Prince - Someone 2 Call - 0303. Poet.mp3
java.lang.OutOfMemoryError: Java heap space
2023-02-28 11:38:28.487  INFO --- o.a.p.s.CacheConfiguration$CacheLogger   : Cache Key: MEDIA_FILE-87581 | EventType: CREATED | Old value: null | New value: org.airsonic.player.domain.CoverArt@13c6b038
2023-02-28 11:38:28.487  INFO --- o.a.p.s.CacheConfiguration$CacheLogger   : Cache Key: MEDIA_FILE-65730 | EventType: EVICTED | Old value: org.airsonic.player.domain.CoverArt@13bc5a33 | New value: null
2023-02-28 11:38:28.488  INFO --- o.a.p.s.MediaScannerService              : Scanned media library with 72750 entries.

Then:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liquibase' defined in class path resource [org/springframework/boot/autoconfigure/liquibase/LiquibaseAutoConfiguration$LiquibaseConfiguration.class]: Invocation of init method failed; nested exception is liquibase.exception.DatabaseException: java.sql.SQLException: error in script file  line: 120612 org.hsqldb.HsqlException: integrity constraint violation: unique constraint or index violation ; SYS_PK_10448 table: COVER_ART
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1804) ~[spring-beans-5.3.24.jar:5.3.24]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:620) ~[spring-beans-5.3.24.jar:5.3.24]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:542) ~[spring-beans-5.3.24.jar:5.3.24]
    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.24.jar:5.3.24]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.24.jar:5.3.24]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.24.jar:5.3.24]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.24.jar:5.3.24]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) ~[spring-beans-5.3.24.jar:5.3.24]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.24.jar:5.3.24]
    at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:276) ~[spring-beans-5.3.24.jar:5.3.24]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1391) ~[spring-beans-5.3.24.jar:5.3.24]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1311) ~[spring-beans-5.3.24.jar:5.3.24]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:657) ~[spring-beans-5.3.24.jar:5.3.24]
    ... 49 common frames omitted
Caused by: liquibase.exception.DatabaseException: java.sql.SQLException: error in script file  line: 120612 org.hsqldb.HsqlException: integrity constraint violation: unique constraint or index violation ; SYS_PK_10448 table: COVER_ART
    at liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:285) ~[liquibase-core-4.18.0.jar:na]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1863) ~[spring-beans-5.3.24.jar:5.3.24]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1800) ~[spring-beans-5.3.24.jar:5.3.24]
    ... 61 common frames omitted
Caused by: java.sql.SQLException: error in script file  line: 120612 org.hsqldb.HsqlException: integrity constraint violation: unique constraint or index violation ; SYS_PK_10448 table: COVER_ART
    at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source) ~[hsqldb-2.7.1.jar:2.7.1]
    at org.hsqldb.jdbc.JDBCUtil.sqlException(Unknown Source) ~[hsqldb-2.7.1.jar:2.7.1]
    at org.hsqldb.jdbc.JDBCConnection.<init>(Unknown Source) ~[hsqldb-2.7.1.jar:2.7.1]
    at org.hsqldb.jdbc.JDBCDriver.getConnection(Unknown Source) ~[hsqldb-2.7.1.jar:2.7.1]
    at org.hsqldb.jdbc.JDBCDriver.connect(Unknown Source) ~[hsqldb-2.7.1.jar:2.7.1]
    at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) ~[HikariCP-4.0.3.jar:na]
    at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:364) ~[HikariCP-4.0.3.jar:na]
    at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206) ~[HikariCP-4.0.3.jar:na]
    at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:476) ~[HikariCP-4.0.3.jar:na]
    at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561) ~[HikariCP-4.0.3.jar:na]
    at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115) ~[HikariCP-4.0.3.jar:na]
    at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) ~[HikariCP-4.0.3.jar:na]
    at liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:280) ~[liquibase-core-4.18.0.jar:na]
    ... 63 common frames omitted
Caused by: org.hsqldb.HsqlException: error in script file  line: 120612 org.hsqldb.HsqlException: integrity constraint violation: unique constraint or index violation ; SYS_PK_10448 table: COVER_ART
    at org.hsqldb.error.Error.error(Unknown Source) ~[hsqldb-2.7.1.jar:2.7.1]
    at org.hsqldb.scriptio.ScriptReaderText.getError(Unknown Source) ~[hsqldb-2.7.1.jar:2.7.1]
    at org.hsqldb.scriptio.ScriptReaderText.readExistingData(Unknown Source) ~[hsqldb-2.7.1.jar:2.7.1]
    at org.hsqldb.scriptio.ScriptReaderText.readAll(Unknown Source) ~[hsqldb-2.7.1.jar:2.7.1]
    at org.hsqldb.persist.Log.processScript(Unknown Source) ~[hsqldb-2.7.1.jar:2.7.1]
    at org.hsqldb.persist.Log.open(Unknown Source) ~[hsqldb-2.7.1.jar:2.7.1]
    at org.hsqldb.persist.Logger.open(Unknown Source) ~[hsqldb-2.7.1.jar:2.7.1]
    at org.hsqldb.Database.reopen(Unknown Source) ~[hsqldb-2.7.1.jar:2.7.1]
    at org.hsqldb.Database.open(Unknown Source) ~[hsqldb-2.7.1.jar:2.7.1]
    at org.hsqldb.DatabaseManager.getDatabase(Unknown Source) ~[hsqldb-2.7.1.jar:2.7.1]
    at org.hsqldb.DatabaseManager.newSession(Unknown Source) ~[hsqldb-2.7.1.jar:2.7.1]
    ... 74 common frames omitted
Caused by: org.hsqldb.HsqlException: integrity constraint violation: unique constraint or index violation ; SYS_PK_10448 table: COVER_ART
    at org.hsqldb.error.Error.error(Unknown Source) ~[hsqldb-2.7.1.jar:2.7.1]
    at org.hsqldb.Constraint.getException(Unknown Source) ~[hsqldb-2.7.1.jar:2.7.1]
    at org.hsqldb.index.IndexAVL.insert(Unknown Source) ~[hsqldb-2.7.1.jar:2.7.1]
    at org.hsqldb.persist.RowStoreAVL.indexRow(Unknown Source) ~[hsqldb-2.7.1.jar:2.7.1]
    at org.hsqldb.Table.insertData(Unknown Source) ~[hsqldb-2.7.1.jar:2.7.1]
    at org.hsqldb.Table.insertFromScript(Unknown Source) ~[hsqldb-2.7.1.jar:2.7.1]
    at org.hsqldb.persist.RowInsertSimple.insert(Unknown Source) ~[hsqldb-2.7.1.jar:2.7.1]
    ... 83 common frames omitted
Docker USER id: 0
Docker PUID env: 1026
Docker USER group: 0
Docker PGID env: 100
usermod: no changes
Process will run as:
User: 1026
Group: 100
openjdk 17.0.5 2022-10-18
OpenJDK Runtime Environment Temurin-17.0.5+8 (build 17.0.5+8)
OpenJDK 64-Bit Server VM Temurin-17.0.5+8 (build 17.0.5+8, mixed mode, sharing)
JAVA_OPTS=
ffmpeg version 4.4.2-0ubuntu0.22.04.1 Copyright (c) 2000-2021 the FFmpeg developers
built with gcc 11 (Ubuntu 11.2.0-19ubuntu1)
configuration: --prefix=/usr --extra-version=0ubuntu0.22.04.1 --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --arch=amd64 --enable-gpl --disable-stripping --enable-gnutls --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libcodec2 --enable-libdav1d --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libjack --enable-libmp3lame --enable-libmysofa --enable-libopenjpeg --enable-libopenmpt --enable-libopus --enable-libpulse --enable-librabbitmq --enable-librubberband --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx265 --enable-libxml2 --enable-libxvid --enable-libzimg --enable-libzmq --enable-libzvbi --enable-lv2 --enable-omx --enable-openal --enable-opencl --enable-opengl --enable-sdl2 --enable-pocketsphinx --enable-librsvg --enable-libmfx --enable-libdc1394 --enable-libdrm --enable-libiec61883 --enable-chromaprint --enable-frei0r --enable-libx264 --enable-shared
libavutil      56. 70.100 / 56. 70.100
libavcodec     58.134.100 / 58.134.100
libavformat    58. 76.100 / 58. 76.100
libavdevice    58. 13.100 / 58. 13.100
libavfilter     7.110.100 /  7.110.100
libswscale      5.  9.100 /  5.  9.100
libswresample   3.  9.100 /  3.  9.100
libpostproc    55.  9.100 / 55.  9.100
curl 7.81.0 (x86_64-pc-linux-gnu) libcurl/7.81.0 OpenSSL/3.0.2 zlib/1.2.11 brotli/1.0.9 zstd/1.4.8 libidn2/2.3.2 libpsl/0.21.0 (+libidn2/2.3.2) libssh/0.9.6/openssl/zlib nghttp2/1.43.0 librtmp/2.3 OpenLDAP/2.5.13
Release-Date: 2022-01-05
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp 
Features: alt-svc AsynchDNS brotli GSS-API HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos Largefile libz NTLM NTLM_WB PSL SPNEGO SSL TLS-SRP UnixSockets zstd
PATH=/opt/java/openjdk/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
CONTEXT_PATH=/
           _                       _          
     /\   (_)                     (_)         
    /  \   _ _ __  ___  ___  _ __  _  ___     
   / /\ \ | | '__|/ __|/ _ \| '_ \| |/ __|    
  / ____ \| | |   \__ \ (_) | | | | | (__     
 /_/    \_\_|_|   |___/\___/|_| |_|_|\___|    

2023-02-28 09:31:35.666  INFO --- org.airsonic.player.Application          : Starting Application using Java 17.0.5 on a74bc753f316 with PID 1 (/app/WEB-INF/classes started by au in /var)
2023-02-28 09:31:35.671  INFO --- org.airsonic.player.Application          : No active profile set, falling back to 1 default profile: "default"
bartmans commented 1 year ago

I added: environment:

This made the environment a bit more responsive. Library scan now finishes but still Airsonic is unresponsive while scanning. I would say that this image needs more system (cpu, memory) than the 'old' image). I am using a Synology 720+ (Intel Celeron J4125 4-core 2.0 GHz) with 8GB.

I read your post on your roadmap for this fork. Maybe spend some time on optimizations to speed things up on lowerend hardware? If I am not the only one of course.

kagemomiji commented 1 year ago

@bartmans Thank you. You are right! I will work on it.

FYI: If you don't set Fast access mode, you should. It makes performance better.

bartmans commented 1 year ago

First of all: a big thank you for taking this on! It would be a shame if Airsonic wasn't kept up to date. I am definitely not a programmer, but if I can help in anyway (testing?) I will.

And a big difference indeed in memory use between Java 11 en 17:

11.0.0-SNAPSHOT.20230217142243 – 17 februari 2023 om 15:22:43 CET [Commit: 1397446f979b1cdea283eec89ce4f0eae7d63450] Server Apache Tomcat/9.0.60, java 11.0.18, Linux (276,1 MB / 512,0 MB)

11.0.2-SNAPSHOT.20230227155658 – 27 februari 2023 om 16:56:58 CET [Commit: adbc2cfc9c56d1a70b5d9e3cc05e8a96658dd5f2] Server Apache Tomcat/9.0.70, java 17.0.5, Linux (364,0 MB / 1,07 GB)

kagemomiji commented 1 year ago

@bartmans thank you for information. Besides the Java version, there are several differences between 11.0.0 and latest version. I built latest version by java 11.
ghcr.io/kagemomiji/airsonic-advanced:pr-132 Could you try it and check memory usage?

bartmans commented 1 year ago

11.0.2-SNAPSHOT.20230302160922 – 2 maart 2023 om 17:09:22 CET [Commit: ab45abcca3ff42e28ad6c553e6a9173f29a0bbd3]

Server | Apache Tomcat/9.0.70, java 11.0.18, Linux (436,4 MB / 825,0 MB)

It's not memory usage. I tried:

Logged in, ticked 'fast access' and let libraries scan. After the first time, turned off full library updates and ran the scan again.

AA took under 2 minutes to update library. PR-132 is still busy after > 30 minutes. Performance for both instances is otherwise good: tried with multiple clients, simultaneous streaming, no problem.

So maybe it has more to do with disk access? And am curious if I am the only one with this performance issue.

kagemomiji commented 1 year ago

@bartmans Thank you for trying PR-132.

So maybe it has more to do with disk access?

Yes, latest edge version has more disk access than latest AA, because latest edge version supports cue sheet file. Next, I will look at disk access and optimize it.

And am curious if I am the only one with this performance issue.

I also think this is problem. I want to fix it.

bartmans commented 1 year ago

Yeah you did it! Nice: 2023-03-05 18:32:19.473 INFO --- o.a.p.s.MediaScannerService : Media library scan took 102s

Thank you.