Cuando ocurre un error del servidor web «jetty» de Subsonic ó Madsonic, y tras comprobar el log:
root@shirley:/var/subsonic# cat /var/subsonic/subsonic.log
Si se produce este error:
[2015-01-26 14:38:57,352] INFO DaoHelper - Checking database schema.
[2015-01-26 14:38:59,489] ERROR DaoHelper - Failed to initialize database.
org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLException: error in script file line: 62 S1000 General error java.lang.NullPointerException in statement [SET TABLE SHARE INDEX'9290275 9290275 9290275 9290275 1']
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:82)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:382)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:429)
at net.sourceforge.subsonic.dao.schema.Schema25.execute(Schema25.java:38)
at net.sourceforge.subsonic.dao.DaoHelper.checkDatabase(DaoHelper.java:115)
at net.sourceforge.subsonic.dao.DaoHelper.<init>(DaoHelper.java:72)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:100)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:61)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:877)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:839)
es debido a que la base de datos está corrupta. Para solucionar, es necesario restaurar un backup:
carlos@shirley:~# cd /var/subsonic/db/
root@shirley:/var/subsonic/db# cp subsonic.backup subsonic.data
y rearrancar Subsonic:
carlos@shirley:/var/subsonic/db# /etc/init.d/subsonic restart
* Restarting Subsonic Daemon subsonic Started Subsonic [PID 4093, /var/subsonic/subsonic_sh.log]