You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
2024-05-10 08:45:19,371 (ErrorsLoggingHandler.java:47)[redisson-netty-6-5][ERROR][org.redisson.client.handler.ErrorsLoggingHandler] Exception occured. Channel: [id: 0x0d2d2a30, L:/10.148.152.172:51420 - R:10.148.153.40/10.148.153.40:6379]java.lang.NoClassDefFoundError: com/esotericsoftware/minlog/Log
at com.esotericsoftware.kryo.util.Util.isClassAvailable(Util.java:81) ~[kryo-5.5.0.jar:?]
at com.esotericsoftware.kryo.Kryo.(Kryo.java:234) ~[kryo-5.5.0.jar:?]
at com.esotericsoftware.kryo.Kryo.(Kryo.java:168) ~[kryo-5.5.0.jar:?]
at org.redisson.codec.Kryo5Codec.createKryo(Kryo5Codec.java:123) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.codec.Kryo5Codec$1.create(Kryo5Codec.java:103) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.codec.Kryo5Codec$1.create(Kryo5Codec.java:100) ~[redisson-3.23.0.jar:3.23.0]
at com.esotericsoftware.kryo.util.Pool.obtain(Pool.java:80) ~[kryo-5.5.0.jar:?]
at org.redisson.codec.Kryo5Codec$4.decode(Kryo5Codec.java:140) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:393) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decodeList(CommandDecoder.java:434) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:402) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decodeCommandBatch(CommandDecoder.java:278) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:217) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:144) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:120) ~[redisson-3.23.0.jar:3.23.0]
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)
2024-05-10 18:30:08,343 (RedisOperationUtils.java:247)[globalExecutor-1-10][ERROR][CORE] Failed to get the batch processing result. firstValue=null
java.util.concurrent.ExecutionException: org.redisson.client.RedisException: ERR EXEC without MULTI. channel: [id: 0x3b25640d, L:/10.148.152.172:38038 - R:10.148.153.40/10.148.153.40:6379] command: (EXEC), promise: java.util.concurrent.CompletableFuture@4f8e8c7c[Not completed, 1 dependents], params: []
at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395) ~[?:?]
at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1999) ~[?:?]
at org.jow.common.support.redis.utils.RedisOperationUtils.lambda$conversionBatchResults$10(RedisOperationUtils.java:244) ~[common.jar:?]
at java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1072) ~[?:?]
at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478) ~[?:?]
at org.jow.common.support.thread.FlexibleScheduledThreadPoolExecutor.lambda$schedule$0(FlexibleScheduledThreadPoolExecutor.java:34) ~[common.jar:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
at org.jow.common.support.thread.ExecutorPort$1.lambda$newThread$0(ExecutorPort.java:60) ~[common.jar:?]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.94.Final.jar:4.1.94.Final]
at java.lang.Thread.run(Thread.java:834) ~[?:?]
Caused by: org.redisson.client.RedisException: ERR EXEC without MULTI. channel: [id: 0x3b25640d, L:/10.148.152.172:38038 - R:10.148.153.40/10.148.153.40:6379] command: (EXEC), promise: java.util.concurrent.CompletableFuture@4f8e8c7c[Not completed, 1 dependents], params: []
at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:380) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decodeCommandBatch(CommandDecoder.java:278) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:217) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:144) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:120) ~[redisson-3.23.0.jar:3.23.0]
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529) ~[netty-codec-4.1.94.Final.jar:4.1.94.Final]
2024-05-10 18:30:08,889 (FlexibleCompletableFuture.java:287)[redisson-netty-6-10][ERROR][CORE] The multi-async process completes unexpectedly.
java.util.concurrent.CompletionException: com.esotericsoftware.kryo.KryoException: Encountered unregistered class ID: 121
at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:331) ~[?:?]
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:346) ~[?:?]
at java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1063) ~[?:?]
at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) ~[?:?]
at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088) ~[?:?]
at org.redisson.command.RedisQueuedBatchExecutor.handleError(RedisQueuedBatchExecutor.java:124) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.command.RedisExecutor.handleResult(RedisExecutor.java:571) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.command.RedisExecutor.checkAttemptPromise(RedisExecutor.java:559) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.command.RedisExecutor.lambda$execute$5(RedisExecutor.java:196) ~[redisson-3.23.0.jar:3.23.0]
at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859) ~[?:?]
at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837) ~[?:?]
at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) ~[?:?]
at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088) ~[?:?]
at org.redisson.client.protocol.CommandData.tryFailure(CommandData.java:87) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decodeCommandBatch(CommandDecoder.java:304) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:217) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:144) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:120) ~[redisson-3.23.0.jar:3.23.0]
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529) ~[netty-codec-4.1.94.Final.jar:4.1.94.Final]
at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366) ~[netty-codec-4.1.94.Final.jar:4.1.94.Final]
Redisson version
3.23.0
The text was updated successfully, but these errors were encountered:
在使用RedissonClient.createBatch(BatchOptions.defaults().executionMode(ExecutionMode.REDIS_READ_ATOMIC))执行批量查询时,CommandDecoder的218行代码没有捕获NoClassDefFoundError导致endIndex没有被重置
后续我们通过redifine class修复了NoClassDefFoundError,但可能因为endIndex一直不对导致持续报错:RedisException: ERR EXEC without MULTI 和 KryoException: Encountered unregistered class ID: 121
最后我们通过redifine把ExecutionMode改成IN_MEMORY才不报错了
上述操作都是在不重启进程的情况下完成的
CommandsData commands = (CommandsData) data;
try {
decodeCommandBatch(channel, in, commands);
} catch (Exception e) {
in.readerIndex(endIndex);
sendNext(channel);
commands.getPromise().completeExceptionally(e);
throw e;
}
2024-05-10 08:45:19,371 (ErrorsLoggingHandler.java:47)[redisson-netty-6-5][ERROR][org.redisson.client.handler.ErrorsLoggingHandler] Exception occured. Channel: [id: 0x0d2d2a30, L:/10.148.152.172:51420 - R:10.148.153.40/10.148.153.40:6379]java.lang.NoClassDefFoundError: com/esotericsoftware/minlog/Log
at com.esotericsoftware.kryo.util.Util.isClassAvailable(Util.java:81) ~[kryo-5.5.0.jar:?]
at com.esotericsoftware.kryo.Kryo.(Kryo.java:234) ~[kryo-5.5.0.jar:?]
at com.esotericsoftware.kryo.Kryo.(Kryo.java:168) ~[kryo-5.5.0.jar:?]
at org.redisson.codec.Kryo5Codec.createKryo(Kryo5Codec.java:123) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.codec.Kryo5Codec$1.create(Kryo5Codec.java:103) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.codec.Kryo5Codec$1.create(Kryo5Codec.java:100) ~[redisson-3.23.0.jar:3.23.0]
at com.esotericsoftware.kryo.util.Pool.obtain(Pool.java:80) ~[kryo-5.5.0.jar:?]
at org.redisson.codec.Kryo5Codec$4.decode(Kryo5Codec.java:140) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:393) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decodeList(CommandDecoder.java:434) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:402) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decodeCommandBatch(CommandDecoder.java:278) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:217) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:144) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:120) ~[redisson-3.23.0.jar:3.23.0]
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529)
2024-05-10 18:30:08,343 (RedisOperationUtils.java:247)[globalExecutor-1-10][ERROR][CORE] Failed to get the batch processing result. firstValue=null
java.util.concurrent.ExecutionException: org.redisson.client.RedisException: ERR EXEC without MULTI. channel: [id: 0x3b25640d, L:/10.148.152.172:38038 - R:10.148.153.40/10.148.153.40:6379] command: (EXEC), promise: java.util.concurrent.CompletableFuture@4f8e8c7c[Not completed, 1 dependents], params: []
at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395) ~[?:?]
at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1999) ~[?:?]
at org.jow.common.support.redis.utils.RedisOperationUtils.lambda$conversionBatchResults$10(RedisOperationUtils.java:244) ~[common.jar:?]
at java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1072) ~[?:?]
at java.util.concurrent.CompletableFuture$Completion.run(CompletableFuture.java:478) ~[?:?]
at org.jow.common.support.thread.FlexibleScheduledThreadPoolExecutor.lambda$schedule$0(FlexibleScheduledThreadPoolExecutor.java:34) ~[common.jar:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
at org.jow.common.support.thread.ExecutorPort$1.lambda$newThread$0(ExecutorPort.java:60) ~[common.jar:?]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.94.Final.jar:4.1.94.Final]
at java.lang.Thread.run(Thread.java:834) ~[?:?]
Caused by: org.redisson.client.RedisException: ERR EXEC without MULTI. channel: [id: 0x3b25640d, L:/10.148.152.172:38038 - R:10.148.153.40/10.148.153.40:6379] command: (EXEC), promise: java.util.concurrent.CompletableFuture@4f8e8c7c[Not completed, 1 dependents], params: []
at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:380) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decodeCommandBatch(CommandDecoder.java:278) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:217) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:144) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:120) ~[redisson-3.23.0.jar:3.23.0]
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529) ~[netty-codec-4.1.94.Final.jar:4.1.94.Final]
2024-05-10 18:30:08,889 (FlexibleCompletableFuture.java:287)[redisson-netty-6-10][ERROR][CORE] The multi-async process completes unexpectedly.
java.util.concurrent.CompletionException: com.esotericsoftware.kryo.KryoException: Encountered unregistered class ID: 121
at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:331) ~[?:?]
at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:346) ~[?:?]
at java.util.concurrent.CompletableFuture$UniCompose.tryFire(CompletableFuture.java:1063) ~[?:?]
at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) ~[?:?]
at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088) ~[?:?]
at org.redisson.command.RedisQueuedBatchExecutor.handleError(RedisQueuedBatchExecutor.java:124) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.command.RedisExecutor.handleResult(RedisExecutor.java:571) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.command.RedisExecutor.checkAttemptPromise(RedisExecutor.java:559) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.command.RedisExecutor.lambda$execute$5(RedisExecutor.java:196) ~[redisson-3.23.0.jar:3.23.0]
at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859) ~[?:?]
at java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837) ~[?:?]
at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) ~[?:?]
at java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088) ~[?:?]
at org.redisson.client.protocol.CommandData.tryFailure(CommandData.java:87) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decodeCommandBatch(CommandDecoder.java:304) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decodeCommand(CommandDecoder.java:217) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:144) ~[redisson-3.23.0.jar:3.23.0]
at org.redisson.client.handler.CommandDecoder.decode(CommandDecoder.java:120) ~[redisson-3.23.0.jar:3.23.0]
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:529) ~[netty-codec-4.1.94.Final.jar:4.1.94.Final]
at io.netty.handler.codec.ReplayingDecoder.callDecode(ReplayingDecoder.java:366) ~[netty-codec-4.1.94.Final.jar:4.1.94.Final]
Redisson version
3.23.0
The text was updated successfully, but these errors were encountered: