-
Notifications
You must be signed in to change notification settings - Fork 81
Open
Description
β Hazelcast 5.5.0 & 5.5.0-jdk21 crash on Apple M4 (ARM64) β SIGILL in System.registerNatives(), works with jdk17
π§© Problem
Certain official Hazelcast 5.5.0 Docker images crash on startup with SIGILL when run on Apple Silicon M4 (ARM64), while others work correctly.
π§ͺ Tested Docker Images
| Docker Image | Status |
|---|---|
hazelcast/hazelcast:5.5.0 |
β Crash |
hazelcast/hazelcast:5.5.0-jdk21 |
β Crash |
hazelcast/hazelcast:5.5.0-jdk17 |
β Works |
βΆοΈ Reproduction
Run the image directly:
docker run -it hazelcast/hazelcast:5.5.0
# or
docker run -it hazelcast/hazelcast:5.5.0-jdk21Crash occurs immediately at JVM bootstrap.
π₯ Crash Log (Excerpt)
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGILL (0x4) at pc=0x0000ffff81270c5c, pid=1, tid=27
#
# Java VM: OpenJDK 64-Bit Server VM (21.0.4+7-alpine-r0, linux-aarch64)
# Problematic frame:
# j java.lang.System.registerNatives()V+0 java.base
#
# Core dump written to: /opt/hazelcast/core
# Error log file: /tmp/hs_err_pid1.log
No JAVA_OPTS or custom config needed. The crash happens on clean container start.
π¦ Environment
- Hazelcast version:
5.5.0 - Host architecture: Apple Silicon β Apple M4 (ARM64)
- Host OS: macOS (Docker Desktop ARM64)
- Container base OS: Alpine Linux
- Java version: OpenJDK 21.0.4+7-alpine-r0 (64-bit, aarch64)
π Hypothesis
The issue appears related to the Alpine-based OpenJDK 21 ARM64 build used in the Docker images.
It may be due to an invalid instruction or native library incompatibility in JDK 21 on newer ARMv8.6+ (Apple M4).
JDK 17-based images work as expected, which suggests the issue is specific to JDK 21 Alpine builds for ARM.
β As a workaround, the crash can be avoided by disabling SVE instructions using the following option:
hazelcast:
javaOpts: -XX:UseSVE=0Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels