-
Bug
-
Resolution: Awaiting Response
-
None
-
1.19.4
-
None
-
Bundled Java runtime
-
Unconfirmed
-
(Unassigned)
It seems that the launcher is copying some .so files to /tmp (specifically the liblwjgl shared objects in this case) and then loading them from this location. If /tmp is a noexec filesystem then MC fails to launch, giving the error...
[20:34:55] [Datafixer Bootstrap/INFO]: 180 Datafixer optimizations took 105 milliseconds [20:34:56] [Render thread/INFO]: [STDERR]: java.lang.NoClassDefFoundError: Could not initialize class com.mojang.blaze3d.systems.RenderSystem [20:34:56] [Render thread/INFO]: [STDERR]: at ab.a(SourceFile:66) [20:34:56] [Render thread/INFO]: [STDERR]: at emh.a(SourceFile:2424) [20:34:56] [Render thread/INFO]: [STDERR]: at emh.a(SourceFile:2419) [20:34:56] [Render thread/INFO]: [STDERR]: at net.minecraft.client.main.Main.main(SourceFile:207)
This error is slightly vague but capturing an strace output indicates the underlying issue...
14501 openat(AT_FDCWD, "/tmp/lwjgluser/3.3.1-build-7/liblwjgl.so", O_RDONLY|O_CLOEXEC) = 121 ...(unrelated lines omitted)... 14501 mmap(0x7f15aee00000, 2537472, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 121, 0) = -1 EPERM (Operation not permitted)
This shows that MC is attempting to load liblwjgl.so from /tmp/... and failing.
WORKAROUND
- Create/use a folder somewhere on a filesystem that doesn't have the noexec flag set, e.g. /home/user/.local/tmp
- Add the following to the JVM arguments in the MC launcher
-Djava.io.tmpdir=/home/user/.local/tmp