Uploaded image for project: 'Minecraft: Java Edition'
  1. Minecraft: Java Edition
  2. MC-121243

Failed writes due to "No space left on device" are not currently treated as "fatal"

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Open
    • Resolution: Unresolved
    • Affects Version/s: Minecraft 1.12.2, 20w07a
    • Fix Version/s: None
    • Labels:
      None
    • Confirmation Status:
      Confirmed
    • Category:
      (Unassigned)

      Description

      The bug

      When Minecraft fails to write data due to "no space left on device" issues, the error is not treated as fatal. This means the server can continue to run, sometimes for hours, causing an issue which impacts a single failed write to balloon out into an issue effecting dozens of chunks / users.

      The server will then start spamming the following:

      [19:28:56] [chunk IO worker/ERROR]: Failed to store chunk [10, 28]
      java.io.IOException: There is not enough space on the disk
      ...
      

      And when shut down:

      [19:29:30] [poi IO worker/ERROR]: Failed to close storage
      java.io.IOException: There is not enough space on the disk
      ...
      [19:29:30] [chunk IO worker/ERROR]: Failed to close storage
      java.io.IOException: There is not enough space on the disk
      ...
      [19:29:30] [Server thread/ERROR]: Exception closing the level
      java.io.IOException: There is not enough space on the disk
      ...
      

      It's a bad situation, which obviously shouldn't happen, ideally, but the way Minecraft currently handles the issue turns a bad situation into a much worse situation.

      How to reproduce (Windows)

      Warning: When executed incorrectly these steps can cause damage to your OS, use them at your own risk.

      1. Create a Virtual Hard Drive: Tutorial
        • When placing the server .jar in it, make sure to assign enough space so it fits (~ 50 MB)
        • When only using it for the world file use about 5 MB
        • When creating the volume you can either assign a new driver letter or use an empty folder (preferred)
      2. Prepare the server
        • Depending on how large you created the VHD either place the .jar in the folder / drive
        • Or change the server.properties level-name entry to point to the folder / drive
      3. Start the server
      4. Join the server, switch to Creative or Spectator mode and fly around to create chunks
        At some point you should notice IOException in the server log

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              wpalmer William Palmer
            • Votes:
              4 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                CHK: