mojira.dev
MC-113977

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

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.

Linked issues

Attachments

Comments 5

Other steps to reproduce than

Windows 10, on a hard drive encrypted with SecureDoc data-at-rest encryption software

?

Still crashes right after world loads.  Please advise.

[media][media]

I can vouch that SecureDoc encryption causes this problem. I was having the same exact issue. I just decrypted and removed Bitlocker from all drives. Game works fine. I can start new world, save, and reopen.

Is this still an issue in the latest version?

Could be.  I installed a new HD without SecureDoc encryption and I have no more issues.

shufboyardee

(Unassigned)

Community Consensus

Crash

Minecraft 1.11.2, Minecraft 1.12, Minecraft 1.13.1

Retrieved