lettuce-core: Lettuce Throwing java.lang.IndexOutOfBoundsException.

Hello,

We are finding that some of our lettuce client hosts start spontaneously throwing the following exception:

Caused by: com.lambdaworks.redis.RedisException: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
    at com.lambdaworks.redis.cluster.MultiNodeExecution.execute(MultiNodeExecution.java:31)
    at com.lambdaworks.redis.cluster.RedisAdvancedClusterAsyncCommandsImpl.lambda$mget$1(RedisAdvancedClusterAsyncCommandsImpl.java:118)
    at com.lambdaworks.redis.cluster.PipelinedRedisFuture.lambda$new$0(PipelinedRedisFuture.java:24)
    at com.lambdaworks.redis.protocol.AsyncCommand.completeResult(AsyncCommand.java:88)
    at com.lambdaworks.redis.protocol.AsyncCommand.complete(AsyncCommand.java:76)
    at com.lambdaworks.redis.protocol.CommandWrapper.complete(CommandWrapper.java:30)
    at com.lambdaworks.redis.cluster.ClusterCommand.complete(ClusterCommand.java:44)
    at com.lambdaworks.redis.protocol.CommandHandler.decode(CommandHandler.java:170)
    at com.lambdaworks.redis.protocol.CommandHandler.channelRead(CommandHandler.java:141)
    at com.lambdaworks.redis.cluster.RedisAdvancedClusterAsyncCommandsImpl.lambda$null$0(RedisAdvancedClusterAsyncCommandsImpl.java:118)
    at com.lambdaworks.redis.cluster.MultiNodeExecution.execute(MultiNodeExecution.java:29)

Some of the host continue to throw this exception until they are restarted, while others will heal on their own.

We do not see anything interesting in the DEBUG logs leading up to these exceptions; no disconnects or errors, just the expected output leading to the exception such as:

15 Mar 2018 11:30:30,413 [DEBUG] {} (lettuce-nioEventLoop-3-7) com.lambdaworks.redis.protocol.RedisStateMachine: Decoded ClusterCommand [command=AsyncCommand [type=MGET, output=ValueListOutput [output=[null], error='null'], commandType=com.lambdaworks.redis.protocol.Command], executions=0], empty stack: true
15 Mar 2018 11:30:30,413 [DEBUG] {} (lettuce-nioEventLoop-3-3) com.lambdaworks.redis.protocol.RedisStateMachine: Decode ClusterCommand [command=AsyncCommand [type=MGET, output=ValueListOutput [output=[], error='null'], commandType=com.lambdaworks.redis.protocol.Command], executions=0]
15 Mar 2018 11:30:30,413 [DEBUG] {} (lettuce-nioEventLoop-3-3) com.lambdaworks.redis.protocol.RedisStateMachine: Decoded ClusterCommand [command=AsyncCommand [type=MGET, output=ValueListOutput [output=[null], error='null'], commandType=com.lambdaworks.redis.protocol.Command], executions=0], empty stack: true

Our environment: Lettuce 4.1.1.Final Redis 3.2

Link to code where exception is thrown.

About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Comments: 20 (10 by maintainers)

Most upvoted comments

We are in the process of migrating to 4.4.3 - just conducting some final testing.