Mojira Archive
MC-210887

Game launch crashes on Linux with Unicode home folder/username

On Linux if I have home directory such as `/home/Dāvis` then it crashes with
 

---- Minecraft Crash Report ----
// This is a token for 1 free hug. Redeem at your nearest Mojangsta: [~~HUG~~]

Time: 21.8.1 08:22
Description: Initializing game
java.lang.ExceptionInInitializerError
	at dkd.<init>(SourceFile:146)
	at djz.<init>(SourceFile:440)
	at net.minecraft.client.main.Main.main(SourceFile:177)
Caused by: java.lang.RuntimeException: java.lang.UnsatisfiedLinkError: Failed to dynamically load library: /home/Dāvis/.minecraft/bin/cf8c-d22e-2f44-334a/libglfw.so(error = null)
	at deo.<clinit>(SourceFile:46)
	... 3 more
Caused by: java.lang.UnsatisfiedLinkError: Failed to dynamically load library: /home/Dāvis/.minecraft/bin/cf8c-d22e-2f44-334a/libglfw.so(error = null)
	at org.lwjgl.system.linux.LinuxLibrary.loadLibrary(LinuxLibrary.java:32)
	at org.lwjgl.system.linux.LinuxLibrary.<init>(LinuxLibrary.java:19)
	at org.lwjgl.system.APIUtil.apiCreateLibrary(APIUtil.java:123)
	at org.lwjgl.system.Library.loadNative(Library.java:335)
	at org.lwjgl.system.Library.loadNative(Library.java:281)
	at org.lwjgl.system.Library.loadNative(Library.java:205)
	at org.lwjgl.glfw.GLFW.<clinit>(GLFW.java:674)
	at sun.misc.Unsafe.ensureClassInitialized(Native Method)
	at java.lang.invoke.DirectMethodHandle$EnsureInitialized.computeValue(DirectMethodHandle.java:330)
	at java.lang.invoke.DirectMethodHandle$EnsureInitialized.computeValue(DirectMethodHandle.java:327)
	at java.lang.ClassValue.getFromHashMap(ClassValue.java:227)
	at java.lang.ClassValue.getFromBackup(ClassValue.java:209)
	at java.lang.ClassValue.get(ClassValue.java:115)
	at java.lang.invoke.DirectMethodHandle.checkInitialized(DirectMethodHandle.java:351)
	at java.lang.invoke.DirectMethodHandle.ensureInitialized(DirectMethodHandle.java:341)
	at java.lang.invoke.DirectMethodHandle.ensureInitialized(DirectMethodHandle.java:373)
	at deo.<clinit>(SourceFile:43)
	... 3 more
A detailed walkthrough of the error, its code path and all known details is as follows:
----------------------------------------------------------------------------------------- Head --
Thread: Render thread
Stacktrace:
	at dkd.<init>(SourceFile:146)
	at djz.<init>(SourceFile:440)-- Initialization --
Details:
Stacktrace:
	at net.minecraft.client.main.Main.main(SourceFile:177)-- System Details --
Details:
	Minecraft Version: 1.16.4
	Minecraft Version ID: 1.16.4
	Operating System: Linux (amd64) version 5.10.5-arch1-1
	Java Version: 1.8.0_265, Oracle Corporation
	Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Oracle Corporation
	Memory: 1075552088 bytes (1025 MB) / 2147483648 bytes (2048 MB) up to 2147483648 bytes (2048 MB)
	CPUs: 8
	JVM Flags: 8 total; -Xss1M -Xmx2G -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M
	Launched Version: 1.16.4
	Backend library: LWJGL version 3.2.2 build 10
	Backend API: ~~ERROR~~ NoClassDefFoundError: Could not initialize class org.lwjgl.glfw.GLFW
	GL Caps: 
	Using VBOs: Yes
	Is Modded: Probably not. Jar signature remains and client brand is untouched.
	Type: Client (map_client.txt)
	CPU: <unknown>

 

Found that it can be workarounded by specifying non-Unicode `--workDir`
 

Also note that there's another/related bug if I try to use different non-official launcher then it crashes similar error because it copies `libglfw.so` to path like `/tmp/lwjglDāvis/3.2.2-build-10/}` with fails to load aswell.

This can be workarouned by passing `-Duser.name=ascii_name` JVM argument.

 
This bug exists since 1.13+ as 1.12 works fine.
 

Fixed

Dāvis Mosāns

2021-01-08, 08:33 AM

2023-09-06, 06:42 PM

2023-09-06, 06:42 PM

3

6

Community Consensus

Important

Platform

Crash

crash, unicode

1.16.4, 1.18 Pre-release 1, 1.18.1

22w16a