Mojira Archive
MC-261785

MC Doesn't launch on Linux if /tmp is a noexec filesystem

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
    

Awaiting Response

is_fundamental

2023-04-10, 09:28 PM

2024-01-07, 06:02 AM

2024-01-07, 06:02 AM

0

1

Unconfirmed

(Unassigned)

1.19.4

-