zipkin
zipkin copied to clipboard
Docker image not starting on macOS 15.2 with chip M4
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
- Install Dapr CLI with Homebrew with the command "
brew install dapr/tap/dapr-cli" or in any other ways described in the documentation - Run Docker Desktop if it is not running
- Run command "
dapr init"
Expected Behaviour
The Dapr initialization must complete successfully.
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.
hi @arey ,
I added the following to docker compose
environment: - JAVA_OPTS=-XX:UseSVE=0
To get it starting in the time being.
Thanks @thaoula this is what I've done: https://github.com/spring-petclinic/spring-petclinic-microservices/pull/301/files
See please https://bugs.openjdk.org/browse/JDK-8345296 and https://github.com/corretto/corretto-21/issues/85
Fixed by https://github.com/openzipkin/zipkin/pull/3801