zipkin icon indicating copy to clipboard operation
zipkin copied to clipboard

Docker image not starting on macOS 15.2 with chip M4

Open ernstc opened this issue 11 months ago • 4 comments

Describe the Bug

Intialization of DAPR fails on MacOS 15.2 with chip M4 because it is not able to start the Zipkin docker images. During the initialization it pulls the latest version of the docker image. This image, that at the time of writing is version 3.4.3, uses Java Runtime 21.

What happens is that as the container starts, it crashes with the error below:

A fatal error has been detected by the Java Runtime Environment:

SIGILL (0x4) at pc=0x0000ffff9fc67c5c, pid=1, tid=7

JRE version: (21.0.5+11) (build ) Java VM: OpenJDK 64-Bit Server VM (21.0.5+11-alpine-r0, mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc, linux-aarch64) Problematic frame: j java.lang.System.registerNatives()V+0 java.base

With this combination of OS and hardware, it failes with all docker image versions from latest to 2.24.4 because all of them use Java Runtime 21.

The docker image 2.24.3 is working fine because it uses Java Runtime 17.

The same issue is described here: https://github.com/corretto/corretto-21/issues/85 It seems that disabling the use of SVE in Java Runtime 21 can fix the issue:

java -XX:UseSVE=0

Steps to Reproduce

Prerequisites

  • OS: macos 15.2
  • Hardware: Apple Silicon M4 chip

Steps

  1. Install Dapr CLI with Homebrew with the command "brew install dapr/tap/dapr-cli" or in any other ways described in the documentation
  2. Run Docker Desktop if it is not running
  3. Run command "dapr init"

Expected Behaviour

The Dapr initialization must complete successfully.

ernstc avatar Dec 18 '24 16:12 ernstc

I've got the same error on my M4:

# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGILL (0x4) at pc=0x0000ffff8733fc5c, pid=1, tid=7
#
# JRE version:  (21.0.5+11) (build )
# Java VM: OpenJDK 64-Bit Server VM (21.0.5+11-alpine-r0, 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
#
# An error report file with more information is saved as:
# /zipkin/hs_err_pid1.log
[0.019s][warning][os] Loading hsdis library failed
#
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.

arey avatar Dec 27 '24 17:12 arey

hi @arey ,

I added the following to docker compose

environment: - JAVA_OPTS=-XX:UseSVE=0

To get it starting in the time being.

thaoula avatar Dec 28 '24 01:12 thaoula

Thanks @thaoula this is what I've done: https://github.com/spring-petclinic/spring-petclinic-microservices/pull/301/files

arey avatar Dec 28 '24 11:12 arey

See please https://bugs.openjdk.org/browse/JDK-8345296 and https://github.com/corretto/corretto-21/issues/85

reta avatar Jan 07 '25 14:01 reta

Fixed by https://github.com/openzipkin/zipkin/pull/3801

reta avatar Aug 07 '25 20:08 reta