Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
1.8.0
-
None
-
None
-
Alpine 3.9
Mesos 1.8.0
Marathon 1.5.11
Description
I am trying to start marathon as a docker container using libmesos-1.8.0.so as it's native mesos java library in Alpine 3.9. It fails with error as below:
[2019-06-06 06:00:28,703] INFO Slf4jLogger started
[2019-06-06 06:00:28,774] INFO Starting Marathon
OpenJDK 64-Bit Server VM warning: You have loaded library /usr/local/lib/libmesos-1.8.0.so which might have disabled stack guard. The VM will try to fix the stack guard now.
It's highly recommended that you fix the library with 'execstack -c <libfile>', or link it with '-z noexecstack'.
Failed to load native Mesos library from /usr/local/lib/libmesos-1.8.0.so
[2019-06-06 06:00:28,782] ERROR Terminating 8080 due to uncaught exception in thread JMX exporting thread:1 (mesosphere.marathon.MarathonApp:JMX exporting thread)
java.lang.UnsatisfiedLinkError: /usr/local/lib/libmesos-1.8.0.so: Error loading shared library /usr/local/lib/libmesos-1.8.0.so: Exec format error (Possible cause: endianness mismatch)
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1824)
at java.lang.Runtime.load0(Runtime.java:809)
at java.lang.System.load(System.java:1086)
at org.apache.mesos.MesosNativeLibrary.load(MesosNativeLibrary.java:159)
at org.apache.mesos.MesosNativeLibrary.load(MesosNativeLibrary.java:188)
at mesosphere.mesos.LibMesos$.version$lzycompute(LibMesos.scala:25)
at mesosphere.mesos.LibMesos$.version(LibMesos.scala:23)
at mesosphere.mesos.LibMesos$.isCompatible(LibMesos.scala:41)
at mesosphere.marathon.MarathonApp.start(Main.scala:131)
at mesosphere.marathon.Main$.main(Main.scala:259)
at mesosphere.marathon.Main.main(Main.scala)
When the same thing was tried with Mesos1.6 and Mesos1.7 in the same environment, it worked as expected. Somehow this issue is only seen when I try it with Mesos1.8.
Tried the recommended fix with execstack, but alpine repo does not have a package for execstack nor **prelink.