Docker Image - RocksDB JNI library librocksdbjni-linux-aarch64.so not found on ARM64 architecture #9461
HeartLinked
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
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
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.(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.(AuthenticationMetadataManagerImpl.java:42)
at org.apache.rocketmq.auth.authentication.factory.AuthenticationFactory.getMetadataManager(AuthenticationFactory.java:70)
at org.apache.rocketmq.broker.BrokerController.(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.(RocksDB.java:36)
... 12 more
Beta Was this translation helpful? Give feedback.
All reactions