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

Crash when attempting to auto-save the game on an encrypted drive

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Cannot Reproduce
    • None
    • Minecraft 1.11.2, Minecraft 1.12, Minecraft 1.13.1
    • None
    • Windows 10, on a hard drive encrypted with SecureDoc data-at-rest encryption software
    • Community Consensus
    • Crash

      This crash occurs whenever the game auto-saves.

      Steps to reproduce:

      1. Have your .minecraft folder pointed at a drive encrypted with SecureDoc. In my case, the .minecraft folder was in its usual place on the C drive, and that drive was the one encrypted.
      2. Open the game, and load a singleplayer world.
      3. Soon after starting a world, it will attempt to auto-save – and will crash.
      4. Or, you could press the Esc key (attempting to get the Options screen), and it will crash at that point as well.

      Observations

      • This happens in the net.minecraft.stats.StatisticsManagerServer.saveStatFile() method. (using MCP 9.37 naming).
      • It's a NoSuchMethodError This means that while org.apache.commons.io.FileUtils.writeStringToFile(Ljava/io/File;Ljava/lang/String;) was available at compile time, it's not available at runtime in this case. Given that this environment has a full-disk-encryption suite on it, it kinda makes sense that it would be choking off access to FileUtils.
      • Importantly, this is the only usage of that writeStringToFile method in the whole game, as evidenced in MCP 9.37.
        • Other file-writes use different methods, and do succeed before and after this one fails: player data, and the crash report.

      Possible remedy
      Notably this issue does depend on some external software messing with the system, and I understand often that takes it out of the developer's hands, but naively I can think of ways to remedy this, and I leave it to those who know better whether they are reasonable or not.

      1. Attempt another way to write the stats file: avoid that writeStringToFile method, and opt for something else, like whatever's used to write the crash report or the player data.
      2. Silently fail to write the stats file: There is already a catch block for an IOException, so adding a catch block for the NoSuchMethodError would silently prevent the crash.

      Crash report

      / I'm sorry, Dave.
      
      Time: 2/12/17 10:17 AM
      Description: Exception in server tick loop
      
      java.lang.NoSuchMethodError: org.apache.commons.io.FileUtils.writeStringToFile(Ljava/io/File;Ljava/lang/String;)V
      	at nv.b(SourceFile:54)
      	at mt.b(SourceFile:292)
      	at ccg.b(SourceFile:25)
      	at mt.j(SourceFile:738)
      	at cch.C(SourceFile:143)
      	at net.minecraft.server.MinecraftServer.run(SourceFile:466)
      	at java.lang.Thread.run(Thread.java:745)
      
      
      A detailed walkthrough of the error, its code path and all known details is as follows:
      ---------------------------------------------------------------------------------------
      
      -- System Details --
      Details:
      	Minecraft Version: 1.11.2
      	Operating System: Windows 10 (amd64) version 10.0
      	Java Version: 1.8.0_25, Oracle Corporation
      	Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
      	Memory: 211104392 bytes (201 MB) / 440995840 bytes (420 MB) up to 2134114304 bytes (2035 MB)
      	JVM Flags: 6 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx2G -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -Xmn128M
      	IntCache: cache: 0, tcache: 0, allocated: 13, tallocated: 95
      	Profiler Position: N/A (disabled)
      	Player Count: 1 / 8; [ly['REDACTED'/1702, l='New World 2', x=-11.68, y=74.00, z=238.61]]
      	Type: Integrated Server (map_client.txt)
      	Is Modded: Probably not. Jar signature remains and both client + server brands are untouched.
      #@!@# Game crashed! Crash report saved to: #@!@# C:\Users\REDACTED\AppData\Roaming\.minecraft\crash-reports\crash-2017-02-12_10.17.38-server.txt
      

      Related ticket
      On this same machine, with the same disk encryption software, using the old launcher, I used to encounter MCL-1274, which was this same NoSuchMethodError, also not finding org.apache.commons.io.FileUtils.writeStringToFile.

      Thanks.

            Unassigned Unassigned
            shufboyardee Sealbudsman
            Votes:
            2 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved:
              CHK: