Hi, all!
Two days ago, my subsonic server stopped working. I'll try to explain as good as I can, but I don't quite understand it, and it doesn't seem to be completely stable in it's failings, so please bear with me.
I'm running:
License Subsonic Premium
Version 5.2.1 (build 4428) – March 4, 2015
Server jetty-6.1.x, java 1.8.0_45, Windows 7 (35.0 MB / 80.1 MB)
Two days ago, I noticed all my searches turned up empty, both on android and trough the web interface on the server itself. It seems subsonic is no longer able to scan my media folders. Sometimes it turns up completely empty, some times it returns a few artists, but if I try to play anything from those few artists, I get an internal error message (see below).
I have done no changes to my media folder, the music is still there. I have not updated java before the errors started, although I did update today in an attempt to get things working again. All in all, the server has just stood there, running subsonic and a few other services for the last week or so.
I've pasted the error message below, as well as the log since my last restart some five minutes ago. If somebody knows what's causing the error and how it can be fixed, I'd be very grateful.
Oh, yeah. I've tried to restart subsonic, restart the server, clean up the database (after this description: http://wiki.cementhorizon.com/display/C ... c+database) and then restored the old db since it didn't help.
Thanks in advance!
erik
Error message:
Exception org.springframework.dao.TransientDataAccessResourceException
Message PreparedStatementCallback; SQL [update media_file set folder=?,type=?,format=?,title=?,album=?,artist=?,album_artist=?,disc_number=?,track_number=?,year=?,genre=?,bit_rate=?,variable_bit_rate=?,duration_seconds=?,file_size=?,width=?,height=?,cover_art_path=?,parent_path=?,play_count=?,last_played=?,comment=?,changed=?,last_scanned=?,children_last_updated=?,present=?, version=? where path=?]; S1000 General error java.lang.NullPointerException in statement [update media_file set folder=?,type=?,format=?,title=?,album=?,artist=?,album_artist=?,disc_number=?,track_number=?,year=?,genre=?,bit_rate=?,variable_bit_rate=?,duration_seconds=?,file_size=?,width=?,height=?,cover_art_path=?,parent_path=?,play_count=?,last_played=?,comment=?,changed=?,last_scanned=?,children_last_updated=?,present=?, version=? where path=?]; nested exception is java.sql.SQLException: S1000 General error java.lang.NullPointerException in statement [update media_file set folder=?,type=?,format=?,title=?,album=?,artist=?,album_artist=?,disc_number=?,track_number=?,year=?,genre=?,bit_rate=?,variable_bit_rate=?,duration_seconds=?,file_size=?,width=?,height=?,cover_art_path=?,parent_path=?,play_count=?,last_played=?,comment=?,changed=?,last_scanned=?,children_last_updated=?,present=?, version=? where path=?]
Java version Oracle Corporation 1.8.0_45
Operating system Windows 7 6.1
Server jetty-6.1.x
Memory Used 47 of 50 MB
Stack trace org.springframework.dao.TransientDataAccessResourceException: PreparedStatementCallback; SQL [update media_file set folder=?,type=?,format=?,title=?,album=?,artist=?,album_artist=?,disc_number=?,track_number=?,year=?,genre=?,bit_rate=?,variable_bit_rate=?,duration_seconds=?,file_size=?,width=?,height=?,cover_art_path=?,parent_path=?,play_count=?,last_played=?,comment=?,changed=?,last_scanned=?,children_last_updated=?,present=?, version=? where path=?]; S1000 General error java.lang.NullPointerException in statement [update media_file set folder=?,type=?,format=?,title=?,album=?,artist=?,album_artist=?,disc_number=?,track_number=?,year=?,genre=?,bit_rate=?,variable_bit_rate=?,duration_seconds=?,file_size=?,width=?,height=?,cover_art_path=?,parent_path=?,play_count=?,last_played=?,comment=?,changed=?,last_scanned=?,children_last_updated=?,present=?, version=? where path=?]; nested exception is java.sql.SQLException: S1000 General error java.lang.NullPointerException in statement [update media_file set folder=?,type=?,format=?,title=?,album=?,artist=?,album_artist=?,disc_number=?,track_number=?,year=?,genre=?,bit_rate=?,variable_bit_rate=?,duration_seconds=?,file_size=?,width=?,height=?,cover_art_path=?,parent_path=?,play_count=?,last_played=?,comment=?,changed=?,last_scanned=?,children_last_updated=?,present=?, version=? 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.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:81)
at net.sourceforge.subsonic.dao.MediaFileDao.createOrUpdateMediaFile(MediaFileDao.java:163)
at net.sourceforge.subsonic.service.MediaFileService.updateChildren(MediaFileService.java:395)
at net.sourceforge.subsonic.service.MediaFileService.getChildrenOf(MediaFileService.java:193)
at net.sourceforge.subsonic.service.MediaFileService.getChildrenOf(MediaFileService.java:174)
at net.sourceforge.subsonic.controller.MainController.handleRequestInternal(MainController.java:92)
at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:173)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at net.sourceforge.subsonic.filter.RequestEncodingFilter.doFilter(RequestEncodingFilter.java:43)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at net.sourceforge.subsonic.filter.ParameterDecodingFilter.doFilter(ParameterDecodingFilter.java:54)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at net.sourceforge.subsonic.filter.BootstrapVerificationFilter.doFilter(BootstrapVerificationFilter.java:54)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
at org.mortbay.jetty.Server.handle(Server.java:313)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:830)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
Caused by: java.sql.SQLException: S1000 General error java.lang.NullPointerException in statement [update media_file set folder=?,type=?,format=?,title=?,album=?,artist=?,album_artist=?,disc_number=?,track_number=?,year=?,genre=?,bit_rate=?,variable_bit_rate=?,duration_seconds=?,file_size=?,width=?,height=?,cover_art_path=?,parent_path=?,play_count=?,last_played=?,comment=?,changed=?,last_scanned=?,children_last_updated=?,present=?, version=? 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)
... 62 more
Log:
[4/21/15 9:13:20 PM CEST] INFO DaoHelper Checking database schema.
[4/21/15 9:13:21 PM CEST] INFO Schema47 Database table 'media_file' not found. Creating it.
[4/21/15 9:13:21 PM CEST] ERROR DaoHelper Failed to initialize database.
[4/21/15 9:13:21 PM CEST] INFO VersionService Resolved local Subsonic version to: 5.2.1
[4/21/15 9:13:21 PM CEST] INFO MediaScannerService Automatic media library scanning scheduled to run every 1 day(s), starting at Wed Apr 22 03:00:00 CEST 2015
[4/21/15 9:13:21 PM CEST] INFO UPnPService Starting UPnP service...
[4/21/15 9:13:21 PM CEST] INFO PodcastService Automatic Podcast update scheduled to run every 24 hour(s), starting at Tue Apr 21 21:18:21 CEST 2015
[4/21/15 9:13:21 PM CEST] INFO UPnPService Enabling UPnP/DLNA media server
[4/21/15 9:13:21 PM CEST] INFO UPnPService Starting UPnP service - Done!
[4/21/15 9:13:29 PM CEST] INFO SonosService No Sonos controller found
[4/21/15 9:13:31 PM CEST] INFO NetworkService Successfully forwarding port 4040.
[4/21/15 9:13:35 PM CEST] INFO VersionService Resolved latest Subsonic final version to: 5.2.1
[4/21/15 9:13:35 PM CEST] INFO VersionService Resolved latest Subsonic beta version to: 5.2.beta1
[4/21/15 9:13:48 PM CEST] INFO MediaScannerService Starting to scan media library.
[4/21/15 9:13:48 PM CEST] ERROR MediaScannerService Failed to scan media library.
[4/21/15 9:13:48 PM CEST] INFO PlaylistService Starting playlist import.
[4/21/15 9:13:48 PM CEST] INFO PlaylistService Completed playlist import.
[4/21/15 9:14:02 PM CEST] INFO MediaScannerService Starting to scan media library.
[4/21/15 9:14:02 PM CEST] ERROR MediaScannerService Failed to scan media library.
[4/21/15 9:14:03 PM CEST] INFO PlaylistService Starting playlist import.
[4/21/15 9:14:03 PM CEST] INFO PlaylistService Completed playlist import.
[4/21/15 9:18:21 PM CEST] INFO PodcastService Starting scheduled Podcast refresh.
[4/21/15 9:18:21 PM CEST] INFO PodcastService Completed scheduled Podcast refresh.