Subsonic server socket fails after search index OOM error

Need help? Post your questions here.

Moderator: moderators

Subsonic server socket fails after search index OOM error

Postby jimmyjava » Fri Apr 15, 2011 6:09 pm

Periodically, I'll go to log into subsonic (I use web, air, and android), and it simply can't connect (network error, retrying 4 times, etc). It seems this only happens when I use the android client. When I ssh to my server, I see that there are many established TCP connections on port 4040, but no listening sockets. I cannot telnet or nc to that port.

The subsonic_sh.log file indicates:

Code: Select all

Exception in thread "Search Index Generator" java.lang.OutOfMemoryError: GC overhead limit exceeded
        at sun.misc.URLClassPath$JarLoader.checkResource(URLClassPath.java:688)
        at sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:773)
        at sun.misc.URLClassPath.getResource(URLClassPath.java:185)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:209)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
        at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:366)
        at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:337)
        at org.apache.commons.lang.exception.ExceptionUtils.getCauseUsingMethodName(ExceptionUtils.java:301)
        at org.apache.commons.lang.exception.ExceptionUtils.getCause(ExceptionUtils.java:226)
        at org.apache.commons.lang.exception.ExceptionUtils.getCause(ExceptionUtils.java:193)
        at org.apache.commons.lang.exception.ExceptionUtils.getThrowables(ExceptionUtils.java:434)
        at org.apache.commons.lang.exception.ExceptionUtils.getFullStackTrace(ExceptionUtils.java:719)
        at net.sourceforge.subsonic.Logger$Entry.toString(Logger.java:226)
        at java.lang.String.valueOf(String.java:2838)
        at java.io.PrintWriter.println(PrintWriter.java:727)
        at net.sourceforge.subsonic.Logger.add(Logger.java:152)
        at net.sourceforge.subsonic.Logger.error(Logger.java:146)
        at net.sourceforge.subsonic.service.LuceneSearchService.createIndex(LuceneSearchService.java:97)
        at net.sourceforge.subsonic.service.SearchService.doCreateIndex(SearchService.java:159)
        at net.sourceforge.subsonic.service.SearchService.access$000(SearchService.java:60)
        at net.sourceforge.subsonic.service.SearchService$1.run(SearchService.java:113)
Exception in thread "Search Index Generator" java.lang.OutOfMemoryError: GC overhead limit exceeded
        at java.util.Arrays.copyOf(Arrays.java:2798)
        at sun.misc.Resource.getBytes(Resource.java:117)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:273)
        at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
        at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:366)
        at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:337)
        at org.apache.commons.lang.exception.ExceptionUtils.getCauseUsingMethodName(ExceptionUtils.java:301)
        at org.apache.commons.lang.exception.ExceptionUtils.getCause(ExceptionUtils.java:226)
        at org.apache.commons.lang.exception.ExceptionUtils.getCause(ExceptionUtils.java:193)
        at org.apache.commons.lang.exception.ExceptionUtils.getThrowables(ExceptionUtils.java:434)
        at org.apache.commons.lang.exception.ExceptionUtils.getFullStackTrace(ExceptionUtils.java:719)
        at net.sourceforge.subsonic.Logger$Entry.toString(Logger.java:226)
        at java.lang.String.valueOf(String.java:2838)
        at java.io.PrintWriter.println(PrintWriter.java:727)
        at net.sourceforge.subsonic.Logger.add(Logger.java:152)
        at net.sourceforge.subsonic.Logger.error(Logger.java:146)
        at net.sourceforge.subsonic.service.LuceneSearchService.createIndex(LuceneSearchService.java:97)
        at net.sourceforge.subsonic.service.SearchService.doCreateIndex(SearchService.java:159)
        at net.sourceforge.subsonic.service.SearchService.access$000(SearchService.java:60)
        at net.sourceforge.subsonic.service.SearchService$1.run(SearchService.java:113)
243842631 [btpool0-65] INFO org.directwebremoting.log.startup - Starting: DwrServlet v3.0.0.116.rc1 on jetty-6.1.x / JDK 1.6.0_20 from Sun Microsystems Inc. at
Exception in thread "btpool0-0" java.lang.OutOfMemoryError: GC overhead limit exceeded
Exception in thread "Search Index Generator" java.lang.OutOfMemoryError: GC overhead limit exceeded
Exception in thread "Search Index Generator" java.lang.OutOfMemoryError: Java heap space
Exception in thread "Search Index Generator" java.lang.OutOfMemoryError: Java heap space


The subsonic13.index file has a current timestamp, so subsonic is still running and building the index, it just can't receive any HTTP requests.

I am running 32 bit Ubuntu 10.04, and I have 163GB of mostly mp3s (some waves here and there), and 241GB of videos.

Subsonic about page:
Code: Select all
Version   4.4 (build 2169) – February 6, 2011
Server   jetty-6.1.x, java 1.6.0_20, Linux (61.1 MB / 87.8 MB)


My etc/default/subsonic file has:

Code: Select all
SUBSONIC_ARGS="--max-memory=100"


Can I increase memory somehow to keep the server socket from failing? Or should I just run a cron job that bounces subsonic when it sees 4040 is no longer listening?

Thanks,
Jim
jimmyjava
 
Posts: 3
Joined: Thu Jun 03, 2010 4:04 pm

Return to Help

Who is online

Users browsing this forum: No registered users and 30 guests