BlueMap
BlueMap copied to clipboard
Better Handling on Disk Full IOException
Is your feature request related to a problem? Please describe. I've tried to render a giant map (uncompressed because my webhost only takes uncompressed files). It filled the disk (220 GB at ~50%). Then it only threw errors. All progress is lost, I think.
Individual file errors
[ERROR] Failed to save hires model: web/data/drehmal/hires/x-1/5/1/z-8/0.json
java.io.IOException: No such file or directory
at java.base/java.io.UnixFileSystem.createFileExclusively(Native Method)
at java.base/java.io.File.createNewFile(File.java:1027)
at de.bluecolored.bluemap.core.render.hires.HiresModelManager.save(HiresModelManager.java:95)
at de.bluecolored.bluemap.core.render.hires.HiresModelManager.save(HiresModelManager.java:86)
at de.bluecolored.bluemap.core.render.hires.HiresModelManager.render(HiresModelManager.java:80)
at de.bluecolored.bluemap.core.render.TileRenderer.render(TileRenderer.java:49)
at de.bluecolored.bluemap.common.MapType.renderTile(MapType.java:70)
at de.bluecolored.bluemap.common.RenderTicket.render(RenderTicket.java:42)
at de.bluecolored.bluemap.common.RenderManager.renderThread(RenderManager.java:164)
at java.base/java.lang.Thread.run(Thread.java:832)
Render-state file error
^C[INFO] Stopping render ...
[INFO] Saving tiles ...
[INFO] Saving render-state ...
[ERROR] Failed to save render-state!
java.io.IOException: No space left on device
at java.base/java.io.FileOutputStream.writeBytes(Native Method)
at java.base/java.io.FileOutputStream.write(FileOutputStream.java:347)
at java.base/java.util.zip.DeflaterOutputStream.deflate(DeflaterOutputStream.java:252)
at java.base/java.util.zip.DeflaterOutputStream.write(DeflaterOutputStream.java:210)
at java.base/java.util.zip.GZIPOutputStream.write(GZIPOutputStream.java:145)
at java.base/java.util.zip.DeflaterOutputStream.write(DeflaterOutputStream.java:187)
at java.base/java.io.DataOutputStream.writeInt(DataOutputStream.java:196)
at de.bluecolored.bluemap.common.RenderTask.write(RenderTask.java:180)
at de.bluecolored.bluemap.common.RenderManager.writeState(RenderManager.java:241)
at de.bluecolored.bluemap.cli.BlueMapCLI.lambda$renderMaps$0(BlueMapCLI.java:142)
at java.base/java.lang.Thread.run(Thread.java:832)
Suppressed: java.io.IOException: No space left on device
at java.base/java.io.FileOutputStream.writeBytes(Native Method)
at java.base/java.io.FileOutputStream.write(FileOutputStream.java:347)
at java.base/java.util.zip.GZIPOutputStream.finish(GZIPOutputStream.java:168)
at java.base/java.util.zip.DeflaterOutputStream.close(DeflaterOutputStream.java:237)
at java.base/java.io.FilterOutputStream.close(FilterOutputStream.java:188)
at de.bluecolored.bluemap.cli.BlueMapCLI.lambda$renderMaps$0(BlueMapCLI.java:145)
... 1 more
Suppressed: java.io.IOException: No space left on device
at java.base/java.io.FileOutputStream.writeBytes(Native Method)
at java.base/java.io.FileOutputStream.write(FileOutputStream.java:347)
at java.base/java.util.zip.GZIPOutputStream.finish(GZIPOutputStream.java:168)
at java.base/java.util.zip.DeflaterOutputStream.close(DeflaterOutputStream.java:237)
at de.bluecolored.bluemap.cli.BlueMapCLI.lambda$renderMaps$0(BlueMapCLI.java:145)
... 1 more
Describe the solution you'd like Check every now and then if there is still enough space and if not cleanly exit and save the render-state. (Also is there a way to recover from what I already have?)