java.lang.UnsatisfiedLinkError: /tmp/libquestdb15699779527535001402.so

My Red Hat 9.3 VM was very slow so I stopped the questdb process and rebooted. Now it looks like restarting the questdb process thinks there should be a library in /tmp which no longer exists:

$ bin/questdb.sh start -d /common/qdbroot/ -f
JAVA: bin/java
$ cat /common/qdbroot/log/stdout-2024-07-09T23-48-03.txt
java.lang.UnsatisfiedLinkError: /tmp/libquestdb15699779527535001402.so: /tmp/libquestdb15699779527535001402.so: failed to map segment from shared object
at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:388)
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:232)
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:174)
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2394)
at java.base/java.lang.Runtime.load0(Runtime.java:755)
at java.base/java.lang.System.load(System.java:1957)
at io.questdb@8.0.1/io.questdb.std.Os.loadLib(Os.java:247)
at io.questdb@8.0.1/io.questdb.std.Os.loadLib(Os.java:225)
at io.questdb@8.0.1/io.questdb.std.Os.(Os.java:299)
at io.questdb@8.0.1/io.questdb.Bootstrap.(Bootstrap.java:686)
at io.questdb@8.0.1/io.questdb.ServerMain.(ServerMain.java:76)
at io.questdb@8.0.1/io.questdb.ServerMain.main(ServerMain.java:169)
Exception in thread “main” java.lang.NoClassDefFoundError: Could not initialize class io.questdb.std.Os
at io.questdb@8.0.1/io.questdb.log.LogFactory.(LogFactory.java:1157)
at io.questdb@8.0.1/io.questdb.ServerMain.main(ServerMain.java:172)
Caused by: java.lang.ExceptionInInitializerError: Exception java.lang.UnsatisfiedLinkError: /tmp/libquestdb15699779527535001402.so: /tmp/libquestdb15699779527535001402.so: failed to map segment from shared object [in thread “main”]
at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:388)
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:232)
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:174)
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2394)
at java.base/java.lang.Runtime.load0(Runtime.java:755)
at java.base/java.lang.System.load(System.java:1957)
at io.questdb@8.0.1/io.questdb.std.Os.loadLib(Os.java:247)
at io.questdb@8.0.1/io.questdb.std.Os.loadLib(Os.java:225)
at io.questdb@8.0.1/io.questdb.std.Os.(Os.java:299)
at io.questdb@8.0.1/io.questdb.Bootstrap.(Bootstrap.java:686)
at io.questdb@8.0.1/io.questdb.ServerMain.(ServerMain.java:76)
at io.questdb@8.0.1/io.questdb.ServerMain.main(ServerMain.java:169)

User error. /tmp set to ‘noexec’ in /etc/fstab on reboot.

Fix:

$ mount -o remount,exec /tmp

Perm fix: update /etc/fstab