Uploaded image for project: 'Mesos'
  1. Mesos
  2. MESOS-9832

Marathon with native Mesos-1.8.0.so fails to start, throwing endianness mismatch in Alpine3.9



    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 1.8.0
    • Fix Version/s: None
    • Component/s: build, libprocess
    • Labels:
    • Environment:

      Alpine 3.9

      Mesos 1.8.0

      Marathon 1.5.11


      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.




            • Assignee:
              venf Venessa Fernandes
            • Votes:
              0 Vote for this issue
              2 Start watching this issue


              • Created: