kagemomiji / airsonic-advanced

airsonic-advanced
GNU General Public License v3.0
144 stars 13 forks source link

[Bug]: Airsonic crashes on DB update #329

Closed virse closed 7 months ago

virse commented 7 months ago

What happened?

Hey there,

Airsonic crashes when it tries to update the database with an OutOfMemoryError. Please see attached log.

Any help is appreciated. Greets

_airsonic-airsonic-1_logs(1).txt

Steps to reproduce

Error occurs when ever the docker container is re-/started.

Version

11.1.2 (Stable)

Version Detail

Latest Docker

Operating System

Docker on Ubuntu 22.04

Java Version

Latest Docker

Database

Other

DB Detail

Postqres latest Docker

Configuration paramter

Docker instance No special config

Proxy Server

No response

client detail

Firefoy

language

German

Relevant log output

2023-12-08 08:48:00.824  INFO --- o.a.p.s.MediaScannerService              : Scanned media library with 95250 entries.
2023-12-08 08:51:22.066  INFO --- o.a.p.s.MediaScannerService              : Scanned media library with 262764 entries.
2023-12-08 08:51:22.082  INFO --- o.a.p.s.MediaScannerService              : Persisting albums
2023-12-08 08:51:30.149  INFO --- o.a.p.s.PodcastManagementService         : Starting scheduled default Podcast refresh.
2023-12-08 08:51:30.189  INFO --- o.a.p.s.PodcastManagementService         : Completed scheduled default Podcast refresh.
2023-12-08 08:52:12.309  INFO --- o.a.p.s.MediaScannerService              : Persisting artists
2023-12-08 08:52:31.487  INFO --- o.a.p.s.MediaScannerService              : Marking non-present albums.
2023-12-08 08:52:31.540  INFO --- o.a.p.s.MediaScannerService              : Album persistence complete
2023-12-08 08:52:36.783  INFO --- o.a.p.s.MediaScannerService              : Marking present files
2023-12-08 08:52:36.786  INFO --- o.a.p.s.MediaScannerService              : Persisting genres
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "mysql-cj-abandoned-connection-cleanup"
Exception in thread "Catalina-utility-1" java.lang.OutOfMemoryError: Java heap space
2023-12-08 08:53:16.514 ERROR --- o.s.s.s.TaskUtils$LoggingErrorHandler    : Unexpected error occurred in scheduled task
java.lang.OutOfMemoryError: Java heap space
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "http-nio-0.0.0.0-4040-Poller"
2023-12-08 08:53:42.907  INFO --- o.a.p.s.MediaScannerService              : Updating genres
2023-12-08 08:53:52.102  WARN --- c.z.hikari.pool.ProxyConnection          : HikariPool-1 - Connection org.postgresql.jdbc.PgConnection@1ba6a2b9 marked as broken because of SQLSTATE(08006), ErrorCode(0)
org.postgresql.util.PSQLException: An I/O error occurred while sending to the backend.
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:382) ~[postgresql-42.3.8.jar:42.3.8]
    at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:490) ~[postgresql-42.3.8.jar:42.3.8]
    at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:408) ~[postgresql-42.3.8.jar:42.3.8]
    at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:167) ~[postgresql-42.3.8.jar:42.3.8]
    at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:119) ~[postgresql-42.3.8.jar:42.3.8]
    at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52) ~[HikariCP-4.0.3.jar:na]
    at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java) ~[HikariCP-4.0.3.jar:na]
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:57) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.loader.Loader.getResultSet(Loader.java:2322) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2075) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2037) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.loader.Loader.doQuery(Loader.java:956) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:357) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.loader.Loader.doList(Loader.java:2868) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.loader.Loader.doList(Loader.java:2850) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2682) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.loader.Loader.list(Loader.java:2677) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:540) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:400) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:218) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1459) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1649) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1617) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.query.Query.getResultList(Query.java:165) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.query.criteria.internal.compile.CriteriaQueryTypeQueryAdapter.getResultList(CriteriaQueryTypeQueryAdapter.java:76) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.springframework.data.jpa.repository.query.JpaQueryExecution$CollectionExecution.doExecute(JpaQueryExecution.java:128) ~[spring-data-jpa-2.7.16.jar:2.7.16]
    at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:90) ~[spring-data-jpa-2.7.16.jar:2.7.16]
    at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:156) ~[spring-data-jpa-2.7.16.jar:2.7.16]
    at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:144) ~[spring-data-jpa-2.7.16.jar:2.7.16]
    at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137) ~[spring-data-commons-2.7.16.jar:2.7.16]
    at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121) ~[spring-data-commons-2.7.16.jar:2.7.16]
    at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:160) ~[spring-data-commons-2.7.16.jar:2.7.16]
    at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:139) ~[spring-data-commons-2.7.16.jar:2.7.16]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.30.jar:5.3.30]
    at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:76) ~[spring-data-commons-2.7.16.jar:2.7.16]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.30.jar:5.3.30]
    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.30.jar:5.3.30]
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.30.jar:5.3.30]
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.30.jar:5.3.30]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.30.jar:5.3.30]
    at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-5.3.30.jar:5.3.30]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.30.jar:5.3.30]
    at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:145) ~[spring-data-jpa-2.7.16.jar:2.7.16]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.30.jar:5.3.30]
    at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.30.jar:5.3.30]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.30.jar:5.3.30]
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:241) ~[spring-aop-5.3.30.jar:5.3.30]
    at jdk.proxy2/jdk.proxy2.$Proxy204.findByFolderAndPathIn(Unknown Source) ~[na:na]
    at org.airsonic.player.service.MediaFileService.lambda$58(MediaFileService.java:1473) ~[classes/:na]
    at java.base/java.util.stream.IntPipeline$4$1.accept(Unknown Source) ~[na:na]
    at java.base/java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Unknown Source) ~[na:na]
    at java.base/java.util.Spliterator$OfInt.forEachRemaining(Unknown Source) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[na:na]
    at java.base/java.util.stream.ReduceOps$ReduceTask.doLeaf(Unknown Source) ~[na:na]
    at java.base/java.util.stream.ReduceOps$ReduceTask.doLeaf(Unknown Source) ~[na:na]
    at java.base/java.util.stream.AbstractTask.compute(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.CountedCompleter.exec(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinTask.invoke(Unknown Source) ~[na:na]
    at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateParallel(Unknown Source) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[na:na]
    at java.base/java.util.stream.IntPipeline.reduce(Unknown Source) ~[na:na]
    at java.base/java.util.stream.IntPipeline.sum(Unknown Source) ~[na:na]
    at org.airsonic.player.service.MediaFileService.lambda$57(MediaFileService.java:1485) ~[classes/:na]
    at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ConcurrentHashMap$EntrySpliterator.forEachRemaining(Unknown Source) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[na:na]
    at java.base/java.util.stream.ReduceOps$ReduceTask.doLeaf(Unknown Source) ~[na:na]
    at java.base/java.util.stream.ReduceOps$ReduceTask.doLeaf(Unknown Source) ~[na:na]
    at java.base/java.util.stream.AbstractTask.compute(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.CountedCompleter.exec(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinTask.invoke(Unknown Source) ~[na:na]
    at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateParallel(Unknown Source) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[na:na]
    at java.base/java.util.stream.ReferencePipeline.reduce(Unknown Source) ~[na:na]
    at org.airsonic.player.service.MediaFileService.markPresent_aroundBody120(MediaFileService.java:1487) ~[classes/:na]
    at org.airsonic.player.service.MediaFileService$AjcClosure121.run(MediaFileService.java:1) ~[classes/:na]
    at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$around$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96cproceed(AbstractTransactionAspect.aj:67) ~[spring-aspects-5.3.30.jar:5.3.30]
    at org.springframework.transaction.aspectj.AbstractTransactionAspect$AbstractTransactionAspect$1.proceedWithInvocation(AbstractTransactionAspect.aj:73) ~[spring-aspects-5.3.30.jar:5.3.30]
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.30.jar:5.3.30]
    at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$around$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96c(AbstractTransactionAspect.aj:71) ~[spring-aspects-5.3.30.jar:5.3.30]
    at org.airsonic.player.service.MediaFileService.markPresent(MediaFileService.java:1454) ~[classes/:na]
    at org.airsonic.player.service.MediaScannerService.lambda$21(MediaScannerService.java:278) ~[classes/:na]
    at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) ~[na:na]
Caused by: java.io.IOException: Unexpected packet type: 0
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2517) ~[postgresql-42.3.8.jar:42.3.8]
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:355) ~[postgresql-42.3.8.jar:42.3.8]
    ... 92 common frames omitted
2023-12-08 08:53:52.136  WARN --- o.h.e.j.spi.SqlExceptionHelper           : SQL Error: 0, SQLState: 53200
2023-12-08 08:53:52.136 ERROR --- o.h.e.j.spi.SqlExceptionHelper           : Ran out of memory retrieving query results.
2023-12-08 08:53:52.136  WARN --- o.h.e.j.spi.SqlExceptionHelper           : SQL Error: 0, SQLState: 08006
2023-12-08 08:53:52.138 ERROR --- o.h.e.j.spi.SqlExceptionHelper           : An I/O error occurred while sending to the backend.
2023-12-08 08:53:52.189  WARN --- o.a.p.service.MediaFileService           : Error marking media files present
org.springframework.orm.jpa.JpaSystemException: could not extract ResultSet; nested exception is org.hibernate.exception.GenericJDBCException: could not extract ResultSet
    at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:331) ~[spring-orm-5.3.30.jar:5.3.30]
    at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:233) ~[spring-orm-5.3.30.jar:5.3.30]
    at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:551) ~[spring-orm-5.3.30.jar:5.3.30]
    at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) ~[spring-tx-5.3.30.jar:5.3.30]
    at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:243) ~[spring-tx-5.3.30.jar:5.3.30]
    at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) ~[spring-tx-5.3.30.jar:5.3.30]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.30.jar:5.3.30]
    at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:145) ~[spring-data-jpa-2.7.16.jar:2.7.16]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.30.jar:5.3.30]
    at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) ~[spring-aop-5.3.30.jar:5.3.30]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.30.jar:5.3.30]
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:241) ~[spring-aop-5.3.30.jar:5.3.30]
    at jdk.proxy2/jdk.proxy2.$Proxy204.findByFolderAndPathIn(Unknown Source) ~[na:na]
    at org.airsonic.player.service.MediaFileService.lambda$58(MediaFileService.java:1473) ~[classes/:na]
    at java.base/java.util.stream.IntPipeline$4$1.accept(Unknown Source) ~[na:na]
    at java.base/java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Unknown Source) ~[na:na]
    at java.base/java.util.Spliterator$OfInt.forEachRemaining(Unknown Source) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[na:na]
    at java.base/java.util.stream.ReduceOps$ReduceTask.doLeaf(Unknown Source) ~[na:na]
    at java.base/java.util.stream.ReduceOps$ReduceTask.doLeaf(Unknown Source) ~[na:na]
    at java.base/java.util.stream.AbstractTask.compute(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.CountedCompleter.exec(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinTask.invoke(Unknown Source) ~[na:na]
    at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateParallel(Unknown Source) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[na:na]
    at java.base/java.util.stream.IntPipeline.reduce(Unknown Source) ~[na:na]
    at java.base/java.util.stream.IntPipeline.sum(Unknown Source) ~[na:na]
    at org.airsonic.player.service.MediaFileService.lambda$57(MediaFileService.java:1485) ~[classes/:na]
    at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ConcurrentHashMap$EntrySpliterator.forEachRemaining(Unknown Source) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[na:na]
    at java.base/java.util.stream.ReduceOps$ReduceTask.doLeaf(Unknown Source) ~[na:na]
    at java.base/java.util.stream.ReduceOps$ReduceTask.doLeaf(Unknown Source) ~[na:na]
    at java.base/java.util.stream.AbstractTask.compute(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.CountedCompleter.exec(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinTask.invoke(Unknown Source) ~[na:na]
    at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateParallel(Unknown Source) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[na:na]
    at java.base/java.util.stream.ReferencePipeline.reduce(Unknown Source) ~[na:na]
    at org.airsonic.player.service.MediaFileService.markPresent_aroundBody120(MediaFileService.java:1487) ~[classes/:na]
    at org.airsonic.player.service.MediaFileService$AjcClosure121.run(MediaFileService.java:1) ~[classes/:na]
    at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$around$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96cproceed(AbstractTransactionAspect.aj:67) ~[spring-aspects-5.3.30.jar:5.3.30]
    at org.springframework.transaction.aspectj.AbstractTransactionAspect$AbstractTransactionAspect$1.proceedWithInvocation(AbstractTransactionAspect.aj:73) ~[spring-aspects-5.3.30.jar:5.3.30]
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.30.jar:5.3.30]
    at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$around$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96c(AbstractTransactionAspect.aj:71) ~[spring-aspects-5.3.30.jar:5.3.30]
    at org.airsonic.player.service.MediaFileService.markPresent(MediaFileService.java:1454) ~[classes/:na]
    at org.airsonic.player.service.MediaScannerService.lambda$21(MediaScannerService.java:278) ~[classes/:na]
    at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) ~[na:na]
Caused by: org.hibernate.exception.GenericJDBCException: could not extract ResultSet
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:67) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.loader.Loader.getResultSet(Loader.java:2322) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2075) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:2037) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.loader.Loader.doQuery(Loader.java:956) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:357) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.loader.Loader.doList(Loader.java:2868) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.loader.Loader.doList(Loader.java:2850) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2682) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.loader.Loader.list(Loader.java:2677) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:540) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:400) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:218) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1459) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1649) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1617) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.query.Query.getResultList(Query.java:165) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.query.criteria.internal.compile.CriteriaQueryTypeQueryAdapter.getResultList(CriteriaQueryTypeQueryAdapter.java:76) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.springframework.data.jpa.repository.query.JpaQueryExecution$CollectionExecution.doExecute(JpaQueryExecution.java:128) ~[spring-data-jpa-2.7.16.jar:2.7.16]
    at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:90) ~[spring-data-jpa-2.7.16.jar:2.7.16]
    at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:156) ~[spring-data-jpa-2.7.16.jar:2.7.16]
    at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:144) ~[spring-data-jpa-2.7.16.jar:2.7.16]
    at org.springframework.data.repository.core.support.RepositoryMethodInvoker.doInvoke(RepositoryMethodInvoker.java:137) ~[spring-data-commons-2.7.16.jar:2.7.16]
    at org.springframework.data.repository.core.support.RepositoryMethodInvoker.invoke(RepositoryMethodInvoker.java:121) ~[spring-data-commons-2.7.16.jar:2.7.16]
    at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.doInvoke(QueryExecutorMethodInterceptor.java:160) ~[spring-data-commons-2.7.16.jar:2.7.16]
    at org.springframework.data.repository.core.support.QueryExecutorMethodInterceptor.invoke(QueryExecutorMethodInterceptor.java:139) ~[spring-data-commons-2.7.16.jar:2.7.16]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.30.jar:5.3.30]
    at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:76) ~[spring-data-commons-2.7.16.jar:2.7.16]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.30.jar:5.3.30]
    at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) ~[spring-tx-5.3.30.jar:5.3.30]
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.30.jar:5.3.30]
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) ~[spring-tx-5.3.30.jar:5.3.30]
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.3.30.jar:5.3.30]
    at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137) ~[spring-tx-5.3.30.jar:5.3.30]
    ... 52 common frames omitted
Caused by: org.postgresql.util.PSQLException: Ran out of memory retrieving query results.
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2336) ~[postgresql-42.3.8.jar:42.3.8]
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:355) ~[postgresql-42.3.8.jar:42.3.8]
    at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:490) ~[postgresql-42.3.8.jar:42.3.8]
    at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:408) ~[postgresql-42.3.8.jar:42.3.8]
    at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:167) ~[postgresql-42.3.8.jar:42.3.8]
    at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:119) ~[postgresql-42.3.8.jar:42.3.8]
    at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52) ~[HikariCP-4.0.3.jar:na]
    at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java) ~[HikariCP-4.0.3.jar:na]
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:57) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    ... 85 common frames omitted
Caused by: java.lang.OutOfMemoryError: Java heap space
2023-12-08 08:53:52.205 ERROR --- o.s.t.a.AnnotationTransactionAspect      : Application exception overridden by rollback exception
java.lang.OutOfMemoryError: null
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:na]
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[na:na]
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[na:na]
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Unknown Source) ~[na:na]
    at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinTask.getThrowableException(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinTask.reportException(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinTask.invoke(Unknown Source) ~[na:na]
    at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateParallel(Unknown Source) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[na:na]
    at java.base/java.util.stream.IntPipeline.reduce(Unknown Source) ~[na:na]
    at java.base/java.util.stream.IntPipeline.sum(Unknown Source) ~[na:na]
    at org.airsonic.player.service.MediaFileService.lambda$57(MediaFileService.java:1485) ~[classes/:na]
    at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ConcurrentHashMap$EntrySpliterator.forEachRemaining(Unknown Source) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source) ~[na:na]
    at java.base/java.util.stream.ReduceOps$ReduceTask.doLeaf(Unknown Source) ~[na:na]
    at java.base/java.util.stream.ReduceOps$ReduceTask.doLeaf(Unknown Source) ~[na:na]
    at java.base/java.util.stream.AbstractTask.compute(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.CountedCompleter.exec(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinTask.invoke(Unknown Source) ~[na:na]
    at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateParallel(Unknown Source) ~[na:na]
    at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source) ~[na:na]
    at java.base/java.util.stream.ReferencePipeline.reduce(Unknown Source) ~[na:na]
    at org.airsonic.player.service.MediaFileService.markPresent_aroundBody120(MediaFileService.java:1487) ~[classes/:na]
    at org.airsonic.player.service.MediaFileService$AjcClosure121.run(MediaFileService.java:1) ~[classes/:na]
    at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$around$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96cproceed(AbstractTransactionAspect.aj:67) ~[spring-aspects-5.3.30.jar:5.3.30]
    at org.springframework.transaction.aspectj.AbstractTransactionAspect$AbstractTransactionAspect$1.proceedWithInvocation(AbstractTransactionAspect.aj:73) ~[spring-aspects-5.3.30.jar:5.3.30]
    at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) ~[spring-tx-5.3.30.jar:5.3.30]
    at org.springframework.transaction.aspectj.AbstractTransactionAspect.ajc$around$org_springframework_transaction_aspectj_AbstractTransactionAspect$1$2a73e96c(AbstractTransactionAspect.aj:71) ~[spring-aspects-5.3.30.jar:5.3.30]
    at org.airsonic.player.service.MediaFileService.markPresent(MediaFileService.java:1454) ~[classes/:na]
    at org.airsonic.player.service.MediaScannerService.lambda$21(MediaScannerService.java:278) ~[classes/:na]
    at java.base/java.util.concurrent.CompletableFuture$AsyncRun.run(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.CompletableFuture$AsyncRun.exec(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinPool.scan(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source) ~[na:na]
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source) ~[na:na]
Caused by: java.lang.OutOfMemoryError: Java heap space
    at java.base/java.util.Arrays.copyOf(Unknown Source) ~[na:na]
    at java.base/java.lang.AbstractStringBuilder.ensureCapacityInternal(Unknown Source) ~[na:na]
    at java.base/java.lang.AbstractStringBuilder.append(Unknown Source) ~[na:na]
    at java.base/java.lang.StringBuilder.append(Unknown Source) ~[na:na]
    at org.hibernate.hql.internal.ast.SqlGenerator$DefaultWriter.clause(SqlGenerator.java:325) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.hql.internal.ast.SqlGenerator.out(SqlGenerator.java:108) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.hql.internal.antlr.SqlGeneratorBase.from(SqlGeneratorBase.java:594) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.hql.internal.antlr.SqlGeneratorBase.selectStatement(SqlGeneratorBase.java:203) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.hql.internal.antlr.SqlGeneratorBase.statement(SqlGeneratorBase.java:150) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.generate(QueryTranslatorImpl.java:255) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:212) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:144) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:112) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:73) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.boot.internal.SessionFactoryBuilderImpl$$Lambda$1158/0x00000008015b2158.createQueryPlan(Unknown Source) ~[na:na]
    at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:162) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.internal.AbstractSharedSessionContract.getQueryPlan(AbstractSharedSessionContract.java:636) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1449) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1649) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1617) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.query.Query.getResultList(Query.java:165) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at org.hibernate.query.criteria.internal.compile.CriteriaQueryTypeQueryAdapter.getResultList(CriteriaQueryTypeQueryAdapter.java:76) ~[hibernate-core-5.6.15.Final.jar:5.6.15.Final]
    at jdk.internal.reflect.GeneratedMethodAccessor166.invoke(Unknown Source) ~[na:na]
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:na]
    at java.base/java.lang.reflect.Method.invoke(Unknown Source) ~[na:na]
    at org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.invoke(SharedEntityManagerCreator.java:410) ~[spring-orm-5.3.30.jar:5.3.30]
    at jdk.proxy2/jdk.proxy2.$Proxy250.getResultList(Unknown Source) ~[na:na]
    at org.springframework.data.jpa.repository.query.JpaQueryExecution$CollectionExecution.doExecute(JpaQueryExecution.java:128) ~[spring-data-jpa-2.7.16.jar:2.7.16]
    at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:90) ~[spring-data-jpa-2.7.16.jar:2.7.16]
    at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:156) ~[spring-data-jpa-2.7.16.jar:2.7.16]
    at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:144) ~[spring-data-jpa-2.7.16.jar:2.7.16]
    at org.springframework.data.repository.core.support.RepositoryMethodInvoker$RepositoryQueryMethodInvoker$$Lambda$1530/0x00000008018fbb28.invoke(Unknown Source) ~[na:na]
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "MessageBroker-2"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "Catalina-utility-3"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "http-nio-0.0.0.0-4040-Acceptor"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "MessageBroker-1"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "MediaLibraryScanner-0"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "CompletableFutureDelayScheduler"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "Catalina-utility-2"
virse commented 7 months ago

Solved: Increased the java heap:

JAVA_OPTS = -Xmx4096m