Trying to start a DSE 6.8 cluster using K8ssandra on arm64 instances, we can see the pods will never get to a ready state and the following exception pops up in the logs:
INFO [DSE main thread] 2023-10-31 08:25:31,448 CassandraDaemonInterceptor.java:52 - Starting DataStax Management API Agent for Apache Cassandra v0.1
WARN [DSE main thread] 2023-10-31 08:25:31,612 CassandraDaemonInterceptor.java:94 - Problem starting DataStax Management API for Apache Cassandra
java.lang.RuntimeException: Event loop needed
at com.datastax.mgmtapi.interceptors.CassandraDaemonInterceptor.intercept(CassandraDaemonInterceptor.java:56)
at org.apache.cassandra.service.CassandraDaemon.start(CassandraDaemon.java)
at com.datastax.bdp.server.DseDaemon.start(DseDaemon.java:559)
at org.apache.cassandra.service.CassandraDaemon.activate0(CassandraDaemon.java:809)
at org.apache.cassandra.service.CassandraDaemon.access$100(CassandraDaemon.java:88)
at org.apache.cassandra.service.CassandraDaemon$3.run(CassandraDaemon.java:717)
INFO [DSE main thread] 2023-10-31 08:25:31,613 MetricsInterceptor.java:65 - Starting Metric Collector for Apache Cassandra
ERROR [DSE main thread] 2023-10-31 08:25:33,331 MetricsInterceptor.java:92 - Unable to start metrics endpoint
java.lang.UnsatisfiedLinkError: failed to load the required native library
at io.netty.channel.epoll.Epoll.ensureAvailability(Epoll.java:81)
at io.netty.channel.epoll.EpollEventLoop.<clinit>(EpollEventLoop.java:59)
at io.netty.channel.epoll.EpollEventLoopGroup.newChild(EpollEventLoopGroup.java:209)
at io.netty.channel.epoll.EpollEventLoopGroup.newChild(EpollEventLoopGroup.java:37)
at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:84)
at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:60)
at io.netty.util.concurrent.MultithreadEventExecutorGroup.<init>(MultithreadEventExecutorGroup.java:49)
at io.netty.channel.MultithreadEventLoopGroup.<init>(MultithreadEventLoopGroup.java:59)
at io.netty.channel.epoll.EpollEventLoopGroup.<init>(EpollEventLoopGroup.java:119)
at io.netty.channel.epoll.EpollEventLoopGroup.<init>(EpollEventLoopGroup.java:106)
at io.netty.channel.epoll.EpollEventLoopGroup.<init>(EpollEventLoopGroup.java:83)
at io.netty.channel.epoll.EpollEventLoopGroup.<init>(EpollEventLoopGroup.java:54)
at io.k8ssandra.metrics.interceptors.MetricsInterceptor.intercept(MetricsInterceptor.java:82)
at org.apache.cassandra.service.CassandraDaemon.start(CassandraDaemon.java)
at com.datastax.bdp.server.DseDaemon.start(DseDaemon.java:559)
at org.apache.cassandra.service.CassandraDaemon.activate0(CassandraDaemon.java:809)
at org.apache.cassandra.service.CassandraDaemon.access$100(CassandraDaemon.java:88)
at org.apache.cassandra.service.CassandraDaemon$3.run(CassandraDaemon.java:717)
Caused by: java.lang.UnsatisfiedLinkError: could not load a native library: netty_transport_native_epoll_aarch_64
at io.netty.util.internal.NativeLibraryLoader.load(NativeLibraryLoader.java:239)
at io.netty.channel.epoll.Native.loadNativeLibrary(Native.java:419)
at io.netty.channel.epoll.Native.<clinit>(Native.java:88)
at io.netty.channel.epoll.Epoll.<clinit>(Epoll.java:40)
at org.apache.cassandra.concurrent.TPC.<clinit>(TPC.java:84)
at org.apache.cassandra.auth.AuthCache.initCache(AuthCache.java:306)
at org.apache.cassandra.auth.AuthCache.init(AuthCache.java:105)
at org.apache.cassandra.auth.AuthCache.<init>(AuthCache.java:100)
at org.apache.cassandra.auth.RolesCache.<init>(RolesCache.java:56)
at org.apache.cassandra.auth.RolesCache.<init>(RolesCache.java:39)
at org.apache.cassandra.auth.AuthManager.<init>(AuthManager.java:74)
at org.apache.cassandra.auth.AuthConfig.applyAuth(AuthConfig.java:94)
at org.apache.cassandra.config.DatabaseDescriptor.daemonInitialization(DatabaseDescriptor.java:241)
at org.apache.cassandra.config.DatabaseDescriptor.daemonInitialization(DatabaseDescriptor.java:254)
at com.datastax.bdp.DseCoreModule.<init>(DseCoreModule.java:83)
at com.datastax.bdp.DseModule.getRequiredModules(DseModule.java:161)
at com.datastax.bdp.server.AbstractDseModule.configure(AbstractDseModule.java:27)
at com.datastax.bdp.DseModule.configure(DseModule.java:88)
at com.google.inject.AbstractModule.configure(AbstractModule.java:62)
at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:340)
at com.google.inject.spi.Elements.getElements(Elements.java:110)
at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:138)
at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104)
at com.google.inject.Guice.createInjector(Guice.java:96)
at com.google.inject.Guice.createInjector(Guice.java:73)
at com.google.inject.Guice.createInjector(Guice.java:62)
at com.datastax.bdp.ioc.DseInjector.get(DseInjector.java:36)
at com.datastax.bdp.DseModule.main(DseModule.java:102)
Suppressed: java.lang.UnsatisfiedLinkError: could not load a native library: netty_transport_native_epoll
at io.netty.util.internal.NativeLibraryLoader.load(NativeLibraryLoader.java:239)
at io.netty.channel.epoll.Native.loadNativeLibrary(Native.java:422)
... 26 common frames omitted
Caused by: java.io.FileNotFoundException: META-INF/native/libnetty_transport_native_epoll.so
at io.netty.util.internal.NativeLibraryLoader.load(NativeLibraryLoader.java:186)
... 27 common frames omitted
Suppressed: java.lang.UnsatisfiedLinkError: no netty_transport_native_epoll in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
at java.lang.Runtime.loadLibrary0(Runtime.java:843)
at java.lang.System.loadLibrary(System.java:1136)
at io.netty.util.internal.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:38)
at io.netty.util.internal.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:391)
at io.netty.util.internal.NativeLibraryLoader.load(NativeLibraryLoader.java:161)
... 27 common frames omitted
Suppressed: java.lang.UnsatisfiedLinkError: no netty_transport_native_epoll in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
at java.lang.Runtime.loadLibrary0(Runtime.java:843)
at java.lang.System.loadLibrary(System.java:1136)
at io.netty.util.internal.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:38)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at io.netty.util.internal.NativeLibraryLoader$1.run(NativeLibraryLoader.java:425)
at java.security.AccessController.doPrivileged(Native Method)
at io.netty.util.internal.NativeLibraryLoader.loadLibraryByHelper(NativeLibraryLoader.java:417)
at io.netty.util.internal.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:383)
... 28 common frames omitted
Caused by: java.io.FileNotFoundException: META-INF/native/libnetty_transport_native_epoll_aarch_64.so
at io.netty.util.internal.NativeLibraryLoader.load(NativeLibraryLoader.java:186)
... 27 common frames omitted
Suppressed: java.lang.UnsatisfiedLinkError: no netty_transport_native_epoll_aarch_64 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
at java.lang.Runtime.loadLibrary0(Runtime.java:843)
at java.lang.System.loadLibrary(System.java:1136)
at io.netty.util.internal.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:38)
at io.netty.util.internal.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:391)
at io.netty.util.internal.NativeLibraryLoader.load(NativeLibraryLoader.java:161)
... 27 common frames omitted
Suppressed: java.lang.UnsatisfiedLinkError: no netty_transport_native_epoll_aarch_64 in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1860)
at java.lang.Runtime.loadLibrary0(Runtime.java:843)
at java.lang.System.loadLibrary(System.java:1136)
at io.netty.util.internal.NativeLibraryUtil.loadLibrary(NativeLibraryUtil.java:38)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at io.netty.util.internal.NativeLibraryLoader$1.run(NativeLibraryLoader.java:425)
at java.security.AccessController.doPrivileged(Native Method)
at io.netty.util.internal.NativeLibraryLoader.loadLibraryByHelper(NativeLibraryLoader.java:417)
at io.netty.util.internal.NativeLibraryLoader.loadLibrary(NativeLibraryLoader.java:383)
... 28 common frames omitted
This seems to indicate we're missing a netty dependency in the java path to provide arm64 compatibility.
Trying to start a DSE 6.8 cluster using K8ssandra on arm64 instances, we can see the pods will never get to a ready state and the following exception pops up in the logs:
This seems to indicate we're missing a netty dependency in the java path to provide arm64 compatibility.