OK, I've got a home server that I've been running off and on for almost a year now. I've been keeping it up to date, and running it off a RAMdisk (2Gb RAMdisk out of 16 Gb on my system). That hasn't changed. Just recently (sometime after either the 1.8.6 or 1.8.7 updates it started giving me a "java.io.exception: Not enough storage is available to process this command" error. I can't pin it down exactly, because we hadn't actually played on our server in the last month, so it is unclear.
Server Log from starting up:
[12:27:55 INFO]: Starting minecraft server version 1.8.7
[12:27:55 INFO]: Loading properties
[12:27:55 ERROR]: Exception handling console input
java.io.IOException: Not enough storage is available to process this command
at java.io.FileInputStream.readBytes(Native Method) ~[?:1.8.0_45]
at java.io.FileInputStream.read(Unknown Source) ~[?:1.8.0_45]
at java.io.BufferedInputStream.read1(Unknown Source) ~[?:1.8.0_45]
at java.io.BufferedInputStream.read(Unknown Source) ~[?:1.8.0_45]
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source) ~[?:1.8.0_45]
at sun.nio.cs.StreamDecoder.implRead(Unknown Source) ~[?:1.8.0_45]
at sun.nio.cs.StreamDecoder.read(Unknown Source) ~[?:1.8.0_45]
at java.io.InputStreamReader.read(Unknown Source) ~[?:1.8.0_45]
at java.io.BufferedReader.fill(Unknown Source) ~[?:1.8.0_45]
at java.io.BufferedReader.readLine(Unknown Source) ~[?:1.8.0_45]
at java.io.BufferedReader.readLine(Unknown Source) ~[?:1.8.0_45]
at ko$2.run(SourceFile:81) [minecraft_server187.jar:?]
[12:27:55 INFO]: Default game type: SURVIVAL
[12:27:55 INFO]: Generating keypair
System:
Windows 7,
16 Gb RAM,
FX 4170,
Minecraft server running off a 2 Gb RAMdisk with 1.7 Gb free
system drive is an SSD with about 25% free,(56 Gb Free)
Java 8 v 45, 64bit.
Any tips on what the problem is or where I should be looking to fix it would be much appreciated.
Are you referring to how much RAM windows assigns to Java, or how much I assigned to the minecraft server in the .bat script I use to launch it?
I'm not sure about the former, but in the .bat script I've assigned it 1024M. I've also been watching the "% free" on the Minecraft server GUI, and I haven't seen it go above 50% in a very long time.(as in many months - It's a home server for family and immediate friends. Usually only a couple people on at a time, never more than 4)
That being said, I haven't changed the .bat file since I upgraded to 1.8.3 a long time ago.
If the IRPStackSize entry is not present in this subkey, follow these steps:
Click Edit, point to New, and then click DWORD Value.
Type IRPStackSize, and then press ENTER.
Note Type IRPStackSize exactly as it appears. The value name is case sensitive.
Click IRPStackSize, click Edit, and then click Modify.
In the Data Value box, type a larger value, and then click OK.
Note Values may range from 0x1 to 0xC. These values are equivalent to 1 to 12 in decimal notation.
If the IRPStackSize registry entry is not present, the computer uses a default value of 0x4. Depending on the configuration of the computer's hardware, this default value may not be large enough for the Srv service to administer shared folders on some of the physical drives.
The only other reference I found dealing with this error and Java was ancient, but it too referenced stack size.
Based on that I would suspect that, since you are running it on a virtual drive, the controlling software is running out of stack space due to the number if file handles it has to track.
Pare down your file count, AND/OR increase your stack size for the VD software, and it will likely go away.
Before I do, I'll add the following: I just tried disabling the RAMdisk and running my server straight from the SSD, and I've encountered the same error.
Here's a screenshot of the server running off the SSD with one person online.
Ok, that is definitely a buffering error, if it is not related to the ramdrive it might be related to the issue I put in the spoiler, namely networking overflow... if it tries to pass a command "string" that is too long it could happen. ?
You could always try that spoiler 'network fix', if nothing else works.
It won't hurt or slow your system down, just use a bit more resources for networking...
[EDIT]
two 'other' changes to try are lines in your server.properties file...
use-native-transport=false
network-compression-threshold=129
(I would start at 129 and move this number up and down by 10 at a time to see if it helps.)
I used to get netty errors all the time until I turned UNT off and changed my compression ratio.
Worth a try IMHO.
[/EDIT]
ok, so i encountered this problem myself and after a bit of trial an error i think i figured it out.
basically javaw.exe is java compiled to not use the console so that you can have java programs running the the background on windows without annoying console windows open. to save system resources, windows (or maybe java, not sure which) doesn't bother setting up the console input/output environment. the error your getting is from minecraft trying and failing to access the console input/output that javaw.exe isn't setting up.
to fix this use java.exe instead of javaw.exe as that java.exe dose setup the full console environment.
OK, I've got a home server that I've been running off and on for almost a year now. I've been keeping it up to date, and running it off a RAMdisk (2Gb RAMdisk out of 16 Gb on my system). That hasn't changed. Just recently (sometime after either the 1.8.6 or 1.8.7 updates it started giving me a "java.io.exception: Not enough storage is available to process this command" error. I can't pin it down exactly, because we hadn't actually played on our server in the last month, so it is unclear.
Server Log from starting up:
[12:27:55 INFO]: Starting minecraft server version 1.8.7
[12:27:55 INFO]: Loading properties
[12:27:55 ERROR]: Exception handling console input
java.io.IOException: Not enough storage is available to process this command
at java.io.FileInputStream.readBytes(Native Method) ~[?:1.8.0_45]
at java.io.FileInputStream.read(Unknown Source) ~[?:1.8.0_45]
at java.io.BufferedInputStream.read1(Unknown Source) ~[?:1.8.0_45]
at java.io.BufferedInputStream.read(Unknown Source) ~[?:1.8.0_45]
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source) ~[?:1.8.0_45]
at sun.nio.cs.StreamDecoder.implRead(Unknown Source) ~[?:1.8.0_45]
at sun.nio.cs.StreamDecoder.read(Unknown Source) ~[?:1.8.0_45]
at java.io.InputStreamReader.read(Unknown Source) ~[?:1.8.0_45]
at java.io.BufferedReader.fill(Unknown Source) ~[?:1.8.0_45]
at java.io.BufferedReader.readLine(Unknown Source) ~[?:1.8.0_45]
at java.io.BufferedReader.readLine(Unknown Source) ~[?:1.8.0_45]
at ko$2.run(SourceFile:81) [minecraft_server187.jar:?]
[12:27:55 INFO]: Default game type: SURVIVAL
[12:27:55 INFO]: Generating keypair
System:
Windows 7,
16 Gb RAM,
FX 4170,
Minecraft server running off a 2 Gb RAMdisk with 1.7 Gb free
system drive is an SSD with about 25% free,(56 Gb Free)
Java 8 v 45, 64bit.
Any tips on what the problem is or where I should be looking to fix it would be much appreciated.
Thanks,
Are you referring to how much RAM windows assigns to Java, or how much I assigned to the minecraft server in the .bat script I use to launch it?
I'm not sure about the former, but in the .bat script I've assigned it 1024M. I've also been watching the "% free" on the Minecraft server GUI, and I haven't seen it go above 50% in a very long time.(as in many months - It's a home server for family and immediate friends. Usually only a couple people on at a time, never more than 4)
That being said, I haven't changed the .bat file since I upgraded to 1.8.3 a long time ago.
I think I know. I did some Google-fu and found this....
If the IRPStackSize entry is not present in this subkey, follow these steps:
If the IRPStackSize registry entry is not present, the computer uses a default value of 0x4. Depending on the configuration of the computer's hardware, this default value may not be large enough for the Srv service to administer shared folders on some of the physical drives.
The only other reference I found dealing with this error and Java was ancient, but it too referenced stack size.
Based on that I would suspect that, since you are running it on a virtual drive, the controlling software is running out of stack space due to the number if file handles it has to track.
Pare down your file count, AND/OR increase your stack size for the VD software, and it will likely go away.
OK, I'll try doing that.
Before I do, I'll add the following: I just tried disabling the RAMdisk and running my server straight from the SSD, and I've encountered the same error.
Here's a screenshot of the server running off the SSD with one person online.
Ok, that is definitely a buffering error, if it is not related to the ramdrive it might be related to the issue I put in the spoiler, namely networking overflow... if it tries to pass a command "string" that is too long it could happen. ?
You could always try that spoiler 'network fix', if nothing else works. It won't hurt or slow your system down, just use a bit more resources for networking...
[EDIT] two 'other' changes to try are lines in your server.properties file...
use-native-transport=false
network-compression-threshold=129
(I would start at 129 and move this number up and down by 10 at a time to see if it helps.)
I used to get netty errors all the time until I turned UNT off and changed my compression ratio.
Worth a try IMHO. [/EDIT]
ok, so i encountered this problem myself and after a bit of trial an error i think i figured it out.
basically javaw.exe is java compiled to not use the console so that you can have java programs running the the background on windows without annoying console windows open. to save system resources, windows (or maybe java, not sure which) doesn't bother setting up the console input/output environment. the error your getting is from minecraft trying and failing to access the console input/output that javaw.exe isn't setting up.
to fix this use java.exe instead of javaw.exe as that java.exe dose setup the full console environment.