New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CommandDecoder持续报错 #5860
Comments
有没有仓库demo,我想调试下 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
在使用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: