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

Reply via email to