GitHub user HeartLinked edited a discussion: Docker Image - RocksDB JNI library librocksdbjni-linux-aarch64.so not found on ARM64 architecture
The official apache/rocketmq:5.3.3 (and latest) Docker image fails to start the Broker on linux/aarch64 platforms (e.g., Apple Silicon M-series Macs) when ACL 2.0 features are enabled. The startup process crashes with a java.lang.ExceptionInInitializerError because the native RocksDB JNI library for the linux-aarch64 architecture appears to be missing from the image. This issue is triggered when the Broker configuration enables the new authentication and authorization providers (LocalAuthenticationMetadataProvider, LocalAuthorizationMetadataProvider), which depend on RocksDB for local storage. Environment Details - RocketMQ Version: 5.3.3, latest - Host OS: macOS (Apple Silicon M3) - CPU Architecture: aarch64 (ARM64) - Docker: Docker Desktop for Mac Actual Behavior: The container fails to start and exits immediately. The logs show a fatal error during class initialization. Stack Trace: java.lang.ExceptionInInitializerError at org.apache.rocketmq.common.config.AbstractRocksDBStorage.<clinit>(AbstractRocksDBStorage.java:100) at org.apache.rocketmq.auth.authentication.provider.LocalAuthenticationMetadataProvider.initialize(LocalAuthenticationMetadataProvider.java:48) at org.apache.rocketmq.auth.authentication.factory.AuthenticationFactory.lambda$getMetadataProvider$1(AuthenticationFactory.java:86) at org.apache.rocketmq.auth.authentication.factory.AuthenticationFactory.computeIfAbsent(AuthenticationFactory.java:144) at org.apache.rocketmq.auth.authentication.factory.AuthenticationFactory.getMetadataProvider(AuthenticationFactory.java:78) at org.apache.rocketmq.auth.authentication.factory.AuthenticationFactory.getMetadataProvider(AuthenticationFactory.java:66) at org.apache.rocketmq.auth.authentication.manager.AuthenticationMetadataManagerImpl.<init>(AuthenticationMetadataManagerImpl.java:42) at org.apache.rocketmq.auth.authentication.factory.AuthenticationFactory.getMetadataManager(AuthenticationFactory.java:70) at org.apache.rocketmq.broker.BrokerController.<init>(BrokerController.java:362) at org.apache.rocketmq.broker.BrokerStartup.buildBrokerController(BrokerStartup.java:215) at org.apache.rocketmq.broker.BrokerStartup.createBrokerController(BrokerStartup.java:247) at org.apache.rocketmq.broker.BrokerStartup.main(BrokerStartup.java:52) Caused by: java.lang.RuntimeException: librocksdbjni-linux-aarch64.so was not found inside JAR. at org.rocksdb.NativeLibraryLoader.loadLibraryFromJarToTemp(NativeLibraryLoader.java:118) at org.rocksdb.NativeLibraryLoader.loadLibraryFromJar(NativeLibraryLoader.java:102) at org.rocksdb.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:82) at org.rocksdb.RocksDB.loadLibrary(RocksDB.java:67) at org.rocksdb.RocksDB.<clinit>(RocksDB.java:36) ... 12 more GitHub link: https://github.com/apache/rocketmq/discussions/9461 ---- This is an automatically sent email for dev@rocketmq.apache.org. To unsubscribe, please send an email to: dev-unsubscr...@rocketmq.apache.org