Affects Version/s: Minecraft 1.8.1, Minecraft 1.8.8, Minecraft 15w44b, Minecraft 1.8.9, Minecraft 15w51b, Minecraft 1.9 Pre-Release 3, Minecraft 1.9 Pre-Release 4, Minecraft 1.9, Minecraft 1.9.2, Minecraft 1.9.4, Minecraft 16w21b, Minecraft 1.10.2, Minecraft 16w40a, Minecraft 1.11, Minecraft 1.11.2, Minecraft 1.12 Pre-Release 7, Minecraft 1.12.1, Minecraft 1.12.2, Minecraft 18w03b, Minecraft 1.13-pre1, Minecraft 1.13.1, Minecraft 1.13.2, Minecraft 18w48a, Minecraft 18w48b, Minecraft 18w49a, Minecraft 18w50a
Fix Version/s: None
Under certain circumstances chunks can swap or reset.
As suggested by Heege McGee Minecraft should handle IOExceptions in a saner way and not just log them and carry on.
It is confirmed that this bug happens when no free memory on the disk is left.
"Es steht nicht genug Speicherplatz auf dem Datenträger zur Verfügung" (German) should be equivalent to the American English "There is not enough space on the disk".
This shows that the exception message is an OS error message and therefore OS dependent and translated. See also this stackoverflow question and this (currently unresolved) JDK bug report from 2001 requesting a separate exception for a full disk.
This stackoverflow question suggests that you might not even be able to directly detect a full disk, and calling getFD().sync() could decrease performance. However, it appears currently the call to FilterOutputStream#close causes the exception.
The question is if at that point the save files could have already been corrupted. Additionally a full disk can cause all kind of other problems, like for example the logger being unable to create log files.
- Use for example this guide to create a VHD and create a volume with a size of 10MB
- Add a new profile using this volume as game directory
- Create a new default world with gamemode Creative and fly around
See this comment (not checked)
Hard to reproduce and likely difficult to detect.
In case an IOException happens possibly log the error and try shutting down the server?