by mbro » Sun Feb 16, 2014 9:25 pm
I'm seeing something similar too. Searching for specific tracks in subsonic netted intermittent results - some were found (by track/album/artist names, some are not).
Updated to subsonic 4.9, and saw this issue before and after. I tried deleting the /var/subsonic/lucene2 directory and restarting subsonic (running on Debian). I triggered a re-index from the web UI, and here's the log segment that it generated:
[2014-02-16 14:19:30,241] INFO MediaScannerService - Scanned media library with 18750 entries.
[2014-02-16 14:19:31,997] INFO MediaScannerService - Scanned media library with 19000 entries.
[2014-02-16 14:19:33,117] INFO MediaScannerService - Scanned media library with 19250 entries.
[2014-02-16 14:19:34,209] INFO MediaScannerService - Scanned media library with 19500 entries.
[2014-02-16 14:19:35,149] ERROR MediaScannerService - Failed to scan media library.
org.springframework.dao.TransientDataAccessResourceException: PreparedStatementCallback; SQL [update media_file set present=?, last_scanned=? where path=?]; S1000 General error java.lang.NullPointerException in statement [update media_file set present=?, last_scanned=? where path=?]; nested exception is java.sql.SQLException: S1000 General error java.lang.NullPointerException in statement [update media_file set present=?, last_scanned=? where path=?]
at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:106)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:607)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:792)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:850)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:858)
at net.sourceforge.subsonic.dao.AbstractDao.update(AbstractDao.java:71)
at net.sourceforge.subsonic.dao.MediaFileDao.markPresent(MediaFileDao.java:327)
at net.sourceforge.subsonic.service.MediaScannerService.scanFile(MediaScannerService.java:241)
at net.sourceforge.subsonic.service.MediaScannerService.scanFile(MediaScannerService.java:229)
at net.sourceforge.subsonic.service.MediaScannerService.scanFile(MediaScannerService.java:232)
at net.sourceforge.subsonic.service.MediaScannerService.scanFile(MediaScannerService.java:232)
at net.sourceforge.subsonic.service.MediaScannerService.doScanLibrary(MediaScannerService.java:178)
at net.sourceforge.subsonic.service.MediaScannerService.access$000(MediaScannerService.java:48)
at net.sourceforge.subsonic.service.MediaScannerService$2.run(MediaScannerService.java:147)
Caused by: java.sql.SQLException: S1000 General error java.lang.NullPointerException in statement [update media_file set present=?, last_scanned=? where path=?]
at org.hsqldb.jdbc.Util.throwError(Unknown Source)
at org.hsqldb.jdbc.jdbcPreparedStatement.executeUpdate(Unknown Source)
at org.springframework.jdbc.core.JdbcTemplate$2.doInPreparedStatement(JdbcTemplate.java:798)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:591)
... 12 more
[2014-02-16 14:19:36,278] INFO PlaylistService - Starting playlist import.
[2014-02-16 14:19:36,279] INFO PlaylistService - Completed playlist import.
[2014-02-16 14:19:36,279] INFO PlaylistService - Starting playlist statistics update.
[2014-02-16 14:19:36,280] INFO PlaylistService - Completed playlist statistics update.
[2014-02-16 14:21:10,963] INFO PodcastService - Starting scheduled Podcast refresh.
[2014-02-16 14:21:10,963] INFO PodcastService - Completed scheduled Podcast refresh.
I have also increased memory allocation (contents of /etc/default/subsonic:)
#
# This is the configuration file for the Subsonic service
# (/etc/init.d/subsonic)
#
# To change the startup parameters of Subsonic, modify
# the SUBSONIC_ARGS variable below.
#
# Type "subsonic --help" on the command line to read an
# explanation of the different options.
#
# For example, to specify that Subsonic should use port 80 (for http)
# and 443 (for https), and use a Java memory heap size of 200 MB, use
# the following:
#
# SUBSONIC_ARGS="--port=80 --https-port=443 --max-memory=200"
SUBSONIC_ARGS="--max-memory=500"
#was 150
# The user which should run the Subsonic process. Default "root".
# Note that non-root users are by default not allowed to use ports
# below 1024. Also make sure to grant the user write permissions in
# the music directories, otherwise changing album art and tags will fail.
SUBSONIC_USER=root
Anybody got any good ideas?