MinimServer Forum

Full Version: Unexpected exception java.lang.OutOfMemoryError: Java heap space
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi new here...well My Synology 216 play just updated to DSM 6.1.7-15284. Now I have the following error. I have the later version of miniserver 0.8.5.3

Unexpected exception java.lang.OutOfMemoryError: Java heap space

is there an update coming?
thanks in advance


[Image: 4MAMrKT.jpg]
This can happen if you have a very large library. How many files (albums, tracks) are there in your library? The DSM update shouldn't make any difference.
I have 25k songs. It was working until the update. I did get a warning that the version of minimserver is not compatible with the update
The DSM warning about MinimServer incompatibility is incorrect. It is a known issue with DSM 6.1 and has been fixed in DSM 6.2.

The OutOfMemoryError means that Java hasn't allocated enough heap space to enable MinimServer to process your size of library. The default heap size is 25% of available system memory and it is possible that the DSM update has made this number slightly smaller than previously.

You can increase the heap size by doing the following:

1) On another computer, create a plain text file named minimstart.conf containing this single line:
javaopts = -Xmx256m
2) Using DSM File Station, create a new folder named 'etc' in the MinimServer shared folder
3) Using DSM File Station, upload the minimstart.conf file to the MinimServer/etc folder
4) Using DSM Package Center, stop and restart MinimServer

Please let me know whether this fixes the problem.
Same result after I performed the steps...below is the log from the crash:


MinimServer crash dump, produced at 20180527-151957.293

java.lang.OutOfMemoryError: Java heap space
at java.base/java.util.Arrays.copyOf(Arrays.java:3744)
at java.base/java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:118)
at java.base/java.io.ByteArrayOutputStream.ensureCapacity(ByteArrayOutputStream.java:93)
at java.base/java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java:153)
at java.base/java.io.DataOutputStream.write(DataOutputStream.java:107)
at java.base/java.io.DataOutputStream.writeUTF(DataOutputStream.java:401)
at java.base/java.io.DataOutputStream.writeUTF(DataOutputStream.java:323)
at com.minimserver.Server$Playlist.writeData(Server.java:10855)
at com.minimserver.Server.processAudioItem(Server.java:4721)
at com.minimserver.Server.access$5900(Server.java:130)
at com.minimserver.Server$Directory.postVisit(Server.java:9206)
at com.minimserver.Server$Visitor.postVisitDirectory(Server.java:9497)
at com.minimserver.Server$Visitor.postVisitDirectory(Server.java:9374)
at java.base/java.nio.file.Files.walkFileTree(Files.java:2731)
at java.base/java.nio.file.Files.walkFileTree(Files.java:2785)
at com.minimserver.Server.readFiles(Server.java:4289)
at com.minimserver.Server.doStart(Server.java:2358)
at com.minimserver.Server.start(Server.java:521)
at org.jminim.core.ContextImpl.startComponent(ContextImpl.java:167)
at org.jminim.core.ContextImpl.start(ContextImpl.java:92)
at org.jminim.core.RootContextImpl.startComponent(RootContextImpl.java:68)
at org.jminim.core.ContextImpl.start(ContextImpl.java:92)
at org.jminim.core.RuntimeImpl.run(RuntimeImpl.java:2022)
at org.jminim.core.LauncherImpl.run(LauncherImpl.java:1192)
at org.jminim.core.LauncherImpl.launch(LauncherImpl.java:137)
at org.jminim.core.LauncherImpl.launch(LauncherImpl.java:121)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja​va:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso​rImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.jminim.mlaunch.MinimLaunch.doLaunch(MinimLaunch.java:494)
at org.jminim.mlaunch.MinimLaunch.launch(MinimLaunch.java:145)

"Thread-11" id=24 RUNNABLE (in native)

"Thread-10" id=23 RUNNABLE (in native)

"Thread-9" id=20 RUNNABLE (in native)
at java.base@9.0.1/java.net.SocketInputStream.socketRead0(Native Method)
at java.base@9.0.1/java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.base@9.0.1/java.net.SocketInputStream.read(SocketInputStream.java:171)
at java.base@9.0.1/java.net.SocketInputStream.read(SocketInputStream.java:141)
at org.jminim.lib.HTTPConnection$ReaderThread.readRequest(HTTPConnection.java:193)
at org.jminim.lib.HTTPConnection$ReaderThread.runReaderThread(HTTPConnection.java:1​56)
at org.jminim.lib.HTTPConnection$ReaderThread.run(HTTPConnection.java:127)

"Thread-8" id=19 WAITING
at java.base@9.0.1/java.lang.Object.wait(Native Method)
- waiting on org.jminim.lib.HTTPConnection@1d38120
at java.base@9.0.1/java.lang.Object.wait(Object.java:516)
at org.jminim.lib.HTTPConnection.getRequest(HTTPConnection.java:109)
at org.jminim.lib.HTTPConnection.access$1700(HTTPConnection.java:18)
at org.jminim.lib.HTTPConnection$WriterThread.runWriterThread(HTTPConnection.java:4​34)
at org.jminim.lib.HTTPConnection$WriterThread.run(HTTPConnection.java:419)

"Thread-7" id=18 RUNNABLE (in native)
at java.base@9.0.1/java.net.PlainSocketImpl.socketAccept(Native Method)
at java.base@9.0.1/java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:459)
at java.base@9.0.1/java.net.ServerSocket.implAccept(ServerSocket.java:551)
at java.base@9.0.1/java.net.ServerSocket.accept(ServerSocket.java:519)
at org.jminim.lib.HTTPService.runServerThread(HTTPService.java:333)
at org.jminim.lib.HTTPService.access$200(HTTPService.java:31)
at org.jminim.lib.HTTPService$1.run(HTTPService.java:318)

"Thread-6" id=17 WAITING
at java.base@9.0.1/java.lang.Object.wait(Native Method)
- waiting on org.jminim.lib.HTTPService$SocketThread@1383667
at java.base@9.0.1/java.lang.Object.wait(Object.java:516)
at org.jminim.lib.HTTPService$SocketThread.run(HTTPService.java:388)

"Thread-5" id=16 WAITING
at java.base@9.0.1/java.lang.Object.wait(Native Method)
- waiting on org.jminim.lib.OhNetService$TimerThread@1cd2cd2
at org.jminim.lib.OhNetService$TimerThread.run(OhNetService.java:1015)

"Thread-4" id=15 WAITING
at java.base@9.0.1/java.lang.Object.wait(Native Method)
- waiting on org.jminim.lib.OhNetService$ActionThread@17a84fe
at java.base@9.0.1/java.lang.Object.wait(Object.java:516)
at org.jminim.lib.OhNetService$ActionThread.run(OhNetService.java:970)

"Thread-1" id=10 WAITING
at java.base@9.0.1/java.lang.Object.wait(Native Method)
- waiting on org.jminim.core.RuntimeImpl$TimerThread@1eee370
at org.jminim.core.RuntimeImpl$TimerThread.run(RuntimeImpl.java:3476)

"Thread-0" id=9 WAITING
at java.base@9.0.1/java.lang.Object.wait(Native Method)
- waiting on org.jminim.core.RuntimeImpl$ActionThread@1c17ba4
at java.base@9.0.1/java.lang.Object.wait(Object.java:516)
at org.jminim.core.RuntimeImpl$ActionThread.run(RuntimeImpl.java:3430)

"Common-Cleaner" id=7 TIMED_WAITING
at java.base@9.0.1/java.lang.Object.wait(Native Method)
- waiting on java.lang.ref.ReferenceQueue$Lock@1e065f2
at java.base@9.0.1/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
at java.base@9.0.1/jdk.internal.ref.CleanerImpl.run(CleanerImpl.java:148)
at java.base@9.0.1/java.lang.Thread.run(Thread.java:844)
at java.base@9.0.1/jdk.internal.misc.InnocuousThread.run(InnocuousThread.java:122)

"Signal Dispatcher" id=4 RUNNABLE

"Finalizer" id=3 WAITING
at java.base@9.0.1/java.lang.Object.wait(Native Method)
- waiting on java.lang.ref.ReferenceQueue$Lock@3c5404
at java.base@9.0.1/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
at java.base@9.0.1/java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:172)
at java.base@9.0.1/java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:216)

"Reference Handler" id=2 RUNNABLE
at java.base@9.0.1/java.lang.ref.Reference.waitForReferencePendingList(Native Method)
at java.base@9.0.1/java.lang.ref.Reference.processPendingReferences(Reference.java:174)
at java.base@9.0.1/java.lang.ref.Reference.access$000(Reference.java:44)
at java.base@9.0.1/java.lang.ref.Reference$ReferenceHandler.run(Reference.java:138)

"main" id=1 RUNNABLE
at java.management@9.0.1/sun.management.ThreadImpl.dumpThreads0(Native Method)
at java.management@9.0.1/sun.management.ThreadImpl.getThreadInfo(ThreadImpl.java:472)
at org.jminim.core.LogImpl.writeCrashDump(LogImpl.java:1178)
at org.jminim.core.LogImpl.printStackTraceSync(LogImpl.java:1103)
- locked org.jminim.core.LogImpl@53ca50
at org.jminim.core.LogImpl.printStackTrace(LogImpl.java:156)
at org.jminim.core.ContextImpl.startComponent(ContextImpl.java:201)
at org.jminim.core.ContextImpl.start(ContextImpl.java:92)
- locked java.lang.Object@d96a5
at org.jminim.core.RootContextImpl.startComponent(RootContextImpl.java:68)
at org.jminim.core.ContextImpl.start(ContextImpl.java:92)
- locked java.lang.Object@2bfe3
at org.jminim.core.RuntimeImpl.run(RuntimeImpl.java:2022)
at org.jminim.core.LauncherImpl.run(LauncherImpl.java:1192)
at org.jminim.core.LauncherImpl.launch(LauncherImpl.java:137)
at org.jminim.core.LauncherImpl.launch(LauncherImpl.java:121)
at java.base@9.0.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base@9.0.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja​va:62)
at java.base@9.0.1/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso​rImpl.java:43)
at java.base@9.0.1/java.lang.reflect.Method.invoke(Method.java:564)
at org.jminim.mlaunch.MinimLaunch.doLaunch(MinimLaunch.java:494)
at org.jminim.mlaunch.MinimLaunch.launch(MinimLaunch.java:145)
at org.jminim.mlaunch.MinimLaunch.launch(MinimLaunch.java:89)
at java.base@9.0.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base@9.0.1/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja​va:62)
at java.base@9.0.1/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso​rImpl.java:43)
at java.base@9.0.1/java.lang.reflect.Method.invoke(Method.java:564)
at app//org.jminim.launch.Launcher.launch(Launcher.java:88)
at app//com.minimserver.launch.LaunchServer.main(LaunchServer.java:34)

- - - - - - - - - - - - - - - -
Please check the MinimServer log to make sure that the -Xmx256m option has been applied. If it has been applied, the start of the log will look similar to this:

MinimServer 0.8.5.3 update 122, Copyright © 2012-2018 Simon Nash. All rights reserved.
MinimStreamer 0.7.6, Copyright © 2012-2018 Simon Nash. All rights reserved.
OpenJDK Runtime Environment (build 9.0.1+11)
OpenJDK Client VM (build 9.0.1+11, mixed mode)
Java runtime options: -Xmx256m
Platform default charset is UTF-8
Language setting is 'enu'
Current time is Sun May 27 21:16:55 IST 2018 in time zone Europe/Dublin
starting MinimServer[DS115]
MinimServer[DS115] is running

If the line "Java runtime options: -Xmx256m" is missing, the minimstart.conf file either doesn't have the correct contents or isn't in the correct location.
(27-05-2018 21:19)simoncn Wrote: [ -> ]Please check the MinimServer log to make sure that the -Xmx256m option has been applied. If it has been applied, the start of the log will look similar to this:

MinimServer 0.8.5.3 update 122, Copyright © 2012-2018 Simon Nash. All rights reserved.
MinimStreamer 0.7.6, Copyright © 2012-2018 Simon Nash. All rights reserved.
OpenJDK Runtime Environment (build 9.0.1+11)
OpenJDK Client VM (build 9.0.1+11, mixed mode)
Java runtime options: -Xmx256m
Platform default charset is UTF-8
Language setting is 'enu'
Current time is Sun May 27 21:16:55 IST 2018 in time zone Europe/Dublin
starting MinimServer[DS115]
MinimServer[DS115] is running

If the line "Java runtime options: -Xmx256m" is missing, the minimstart.conf file either doesn't have the correct contents or isn't in the correct location.

seems to be correct
[Image: 0tDGq7r.jpg]
Ok, then the next step is to increase the heap space further by changing the value in your minimstart.conf file to -Xmx512m.

I noticed from your crash dump that the failure occurred while processing a playlist. If you have a lot of large playlists, this will increase memory consumption and could be the reason why you need a larger Java heap.
Hi Simon
I am good. You are correct. The issue was with a large playlist that was exported from itunes. Once I deleted the playlist, I was able to get the server running. Thank you for your assistance
How many files did the large playlist contain? It might be possible for me to change the way playlists are handled so that this problem doesn't occur.
Reference URL's