1

I am trying to run parallel stream and each block of code under one execution makes hundreds of call to redis cluster (AWS Elasticache), but it's failing with below error on EKS cluster whereas same code works well on Windows VM. java.io.IOException: java.lang.RuntimeException: class not found CLASSNAME:com.mycomp.project.common.domain.Price

Could I get a guide here. Thanks in advance.

Attaching my redis-config.yaml and error log.

clusterServersConfig:
  checkSlotsCoverage: true
  idleConnectionTimeout: 30000
  connectTimeout: 10000
  timeout: 10000
  retryAttempts: 3
  retryInterval: 1500
  failedSlaveReconnectionInterval: 3000
  failedSlaveCheckInterval: 10000
  subscriptionsPerConnection: 20  
  subscriptionConnectionMinimumIdleSize: 5
  subscriptionConnectionPoolSize: 150
  slaveConnectionMinimumIdleSize: 30
  slaveConnectionPoolSize: 150
  masterConnectionMinimumIdleSize: 64
  masterConnectionPoolSize: 64
  readMode: "SLAVE"  #MASTER_SLAVE , SLAVE 
  subscriptionMode: "SLAVE"  #MASTER
  scanInterval: 2000
  pingConnectionInterval: 30000
  keepAlive: true
  tcpNoDelay: true
threads: 200
nettyThreads: 400

codec: !<org.redisson.codec.FstCodec> {}
transportMode: "NIO" 

Error log:

2022-09-02 07:22:46.529 [redisson-netty-2-126] ERROR o.r.client.handler.CommandDecoder - Unable to decode data. channel: [id: 0xccb087e8, L:/10.196.5.71:38250 - R:10.196.57.107/10.196.57.107:6379], reply: ReplayingDecoderByteBuf(ridx=66, widx=1225), command: (EVAL), promise: java.util.concurrent.CompletableFuture@69f0dc32[Not completed, 1 dependents], params: [local expireHead = redis.call('zrange', KEYS[2], 0, 0, 'withscores'); local currentTime = tonumber(t..., 5, project_MARKET_DATA, redisson__timeout__set:{project_MARKET_DATA}, redisson__idle__set:{project_MARKET_DATA}, redisson__map_cache__last_access__set:{project_MARKET_DATA}, {project_MARKET_DATA}:redisson_options, 1662117766526, PooledUnsafeDirectByteBuf(ridx: 0, widx: 67, cap: 256), PooledUnsafeDirectByteBuf(ridx: 0, widx: 67, cap: 256), ...] java.io.IOException: java.lang.RuntimeException: class not found CLASSNAME:com.mycomp.project.common.domain.Price loader:jdk.internal.loader.ClassLoaders$AppClassLoader@5cb0d902 at org.nustaq.serialization.FSTObjectInput.readObject(FSTObjectInput.java:247) at org.redisson.codec.FstCodec$1.decode(FstCodec.java:250) at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:383) at org.redisson.client.handler.CommandDecoder.decodeList(CommandDecoder.java:427) at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:392) at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198) at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137) at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113) at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:503) at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:281) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1478) at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1227) at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1274) at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:503) at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:442) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:281) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1422) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:931) at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:700) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:635) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:552) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:514) at io.netty.util.concurrent.SingleThreadEventExecutor$6.run(SingleThreadEventExecutor.java:1050) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: java.lang.RuntimeException: class not found CLASSNAME:com.mycomp.project.common.domain.Price loader:jdk.internal.loader.ClassLoaders$AppClassLoader@5cb0d902 at org.nustaq.serialization.FSTClazzNameRegistry.classForName(FSTClazzNameRegistry.java:235) at org.nustaq.serialization.FSTClazzNameRegistry.classForName(FSTClazzNameRegistry.java:190) at org.nustaq.serialization.FSTClazzNameRegistry.decodeClass(FSTClazzNameRegistry.java:173) at org.nustaq.serialization.coders.FSTStreamDecoder.readClass(FSTStreamDecoder.java:478) at org.nustaq.serialization.FSTObjectInput.readClass(FSTObjectInput.java:939) at org.nustaq.serialization.FSTObjectInput.readObjectWithHeader(FSTObjectInput.java:347) at org.nustaq.serialization.FSTObjectInput.readObjectInternal(FSTObjectInput.java:331) at org.nustaq.serialization.FSTObjectInput.readObject(FSTObjectInput.java:311) at org.nustaq.serialization.FSTObjectInput.readObject(FSTObjectInput.java:245) ... 35 common frames omitted Caused by: java.lang.ClassNotFoundException: com.mycomp.project.common.domain.Price at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:398) at org.nustaq.serialization.FSTClazzNameRegistry.classForName(FSTClazzNameRegistry.java:197) ... 43 common frames omitted 2022-09-02 07:22:46.529 [redisson-netty-2-126] ERROR o.r.c.handler.ErrorsLoggingHandler - Exception occured. Channel: [id: 0xccb087e8, L:/10.196.5.71:38250 - R:10.196.57.107/10.196.57.107:6379] io.netty.handler.codec.DecoderException: java.io.IOException: java.lang.RuntimeException: class not found CLASSNAME:com.mycomp.project.common.domain.Price loader:jdk.internal.loader.ClassLoaders$AppClassLoader@5cb0d902 at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:421) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:281) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1478) at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1227) at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1274) at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:503) at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:442) at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:281) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1422) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360) at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:931) at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:700) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:635) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:552) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:514) at io.netty.util.concurrent.SingleThreadEventExecutor$6.run(SingleThreadEventExecutor.java:1050) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: java.io.IOException: java.lang.RuntimeException: class not found CLASSNAME:com.mycomp.project.common.domain.Price loader:jdk.internal.loader.ClassLoaders$AppClassLoader@5cb0d902 at org.nustaq.serialization.FSTObjectInput.readObject(FSTObjectInput.java:247) at org.redisson.codec.FstCodec$1.decode(FstCodec.java:250) at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:383) at org.redisson.client.handler.CommandDecoder.decodeList(CommandDecoder.java:427) at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:392) at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:198) at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:137) at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:113) at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:503) at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366) ... 26 common frames omitted Caused by: java.lang.RuntimeException: class not found CLASSNAME:com.mycomp.project.common.domain.Price loader:jdk.internal.loader.ClassLoaders$AppClassLoader@5cb0d902 at org.nustaq.serialization.FSTClazzNameRegistry.classForName(FSTClazzNameRegistry.java:235) at org.nustaq.serialization.FSTClazzNameRegistry.classForName(FSTClazzNameRegistry.java:190) at org.nustaq.serialization.FSTClazzNameRegistry.decodeClass(FSTClazzNameRegistry.java:173) at org.nustaq.serialization.coders.FSTStreamDecoder.readClass(FSTStreamDecoder.java:478) at org.nustaq.serialization.FSTObjectInput.readClass(FSTObjectInput.java:939) at org.nustaq.serialization.FSTObjectInput.readObjectWithHeader(FSTObjectInput.java:347) at org.nustaq.serialization.FSTObjectInput.readObjectInternal(FSTObjectInput.java:331) at org.nustaq.serialization.FSTObjectInput.readObject(FSTObjectInput.java:311) at org.nustaq.serialization.FSTObjectInput.readObject(FSTObjectInput.java:245) ... 35 common frames omitted Caused by: java.lang.ClassNotFoundException: com.mycomp.project.common.domain.Price at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:398) at org.nustaq.serialization.FSTClazzNameRegistry.classForName(FSTClazzNameRegistry.java:197) ... 43 common frames omitted

Sunil Chauraha
  • 525
  • 1
  • 7
  • 21

1 Answers1

1

If I se below property in redisson config, then it fixes the error. useThreadClassLoader: false

For detail please see documentation.

Sunil Chauraha
  • 525
  • 1
  • 7
  • 21