FusionAuth
    • Home
    • Categories
    • Recent
    • Popular
    • Pricing
    • Contact us
    • Docs
    • Login

    Failure when starting FusionAuth in Docker on Mac M4

    Scheduled Pinned Locked Moved Solved
    Q&A
    mac failure java
    1
    2
    772
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • danD
      dan
      last edited by

      When running FusionAuth in Docker on an m4 mac, I see this error:

      # A fatal error has been detected by the Java Runtime Environment:
      #
      #  SIGILL (0x4) at pc=0x0000ffff8d33fc5c, pid=1, tid=21
      #
      # JRE version:  (21.0.4+7) (build )
      # Java VM: OpenJDK 64-Bit Server VM (21.0.4+7-LTS, mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc, linux-aarch64)
      # Problematic frame:
      # j  java.lang.System.registerNatives()V+0 java.base
      #
      # No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
      #
      # The crash happened outside the Java Virtual Machine in native code.
      # See problematic frame for where to report the bug.
      #
      
      ---------------  S U M M A R Y ------------
      
      Command Line: -Dfusionauth.home.directory=/usr/local/fusionauth/fusionauth-app -Dfusionauth.config.directory=/usr/local/fusionauth/config -Dfusionauth.data.directory=/usr/local/fusionauth/data -Dfusionauth.log.directory=/usr/local/fusionauth/logs -Dfusionauth.plugin.directory=/usr/local/fusionauth/plugins -Djava.awt.headless=true -Dcom.sun.org.apache.xml.internal.security.ignoreLineBreaks=true --add-exports=java.base/sun.security.x509=ALL-UNNAMED --add-exports=java.base/sun.security.util=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED -DfusionAuthApp87AFBG16 -Xmx512M -Xms512M io.fusionauth.app.FusionAuthMain
      
      Host: AArch64, 14 cores, 7G, Ubuntu 24.04.1 LTS
      Time: Wed Jan 22 12:35:29 2025 UTC elapsed time: 0.025614 seconds (0d 0h 0m 0s)
      
      ---------------  T H R E A D  ---------------
      
      Current thread (0x0000ffff9802c010):  JavaThread "Unknown thread" [_thread_in_native, id=21, stack(0x0000ffff9e152000,0x0000ffff9e350000) (2040K)]
      
      Stack: [0x0000ffff9e152000,0x0000ffff9e350000],  sp=0x0000ffff9e34e000,  free space=2032k
      Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
      j  java.lang.System.registerNatives()V+0 java.base
      j  java.lang.System.<clinit>()V+0 java.base
      v  ~StubRoutines::call_stub 0x0000ffff8d337144
      V  [libjvm.so+0x8338d8]  JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, JavaThread*)+0x218
      V  [libjvm.so+0x80f488]  InstanceKlass::call_class_initializer(JavaThread*)+0x284
      V  [libjvm.so+0x8101a8]  InstanceKlass::initialize_impl(JavaThread*)+0x528
      V  [libjvm.so+0xdc7138]  Threads::initialize_java_lang_classes(JavaThread*, JavaThread*)+0xe8
      V  [libjvm.so+0xdc9104]  Threads::create_vm(JavaVMInitArgs*, bool*)+0x3f4
      V  [libjvm.so+0x8c68d4]  JNI_CreateJavaVM+0x80
      C  [libjli.so+0x8bac]  JavaMain+0x7c
      C  [libjli.so+0xc20c]  ThreadJavaMain+0xc
      C  [libc.so.6+0x8597c]
      Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
      j  java.lang.System.registerNatives()V+0 java.base
      j  java.lang.System.<clinit>()V+0 java.base
      v  ~StubRoutines::call_stub 0x0000ffff8d337144
      
      siginfo: si_signo: 4 (SIGILL), si_code: 1 (ILL_ILLOPC), si_addr: 0x0000ffff8d33fc5c
      
      Registers:
      R0=0x0000000000000000
      R1=0x0000000000000000
      R2=0x0000000000000000
      ...
      

      What can I do?

      --
      FusionAuth - Auth for devs, built by devs.
      https://fusionauth.io

      danD 1 Reply Last reply Reply Quote 0
      • danD
        dan @dan
        last edited by dan

        This is due to a bug in the openjdk java library that the docker image uses. You can learn more about the bug here and track our fix (which looks like upgrading the java image our docker file users) by following this bug.

        Until then, the workaround is to pass this java argument at start time:

        -XX:UseSVE=0
        

        This argument disables the use of the SVE extension, which is provides "better data parallelism for HPC and ML".

        You can do that with the FUSIONAUTH_APP_ADDITIONAL_JAVA_ARGS environment variable in your Dockerfile. Here's an example:

          fusionauth:
            # ...
            environment:
              # ...
              FUSIONAUTH_APP_ADDITIONAL_JAVA_ARGS: -XX:UseSVE=0
        

        --
        FusionAuth - Auth for devs, built by devs.
        https://fusionauth.io

        1 Reply Last reply Reply Quote 1
        • danD dan has marked this topic as solved on
        • First post
          Last post