[http-nio-11943-exec-2] [] Redis health check failed
java.util.ConcurrentModificationException: null
at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:909) ~[?:1.8.0_221]
at java.util.ArrayList$Itr.next(ArrayList.java:859) ~[?:1.8.0_221]
at org.springframework.data.redis.connection.lettuce.LettuceConverters$1.convert(LettuceConverters.java:226) ~[spring-data-redis-2.1.5.RELEASE.jar!/:2.1.5.RELEASE]
at org.springframework.data.redis.connection.lettuce.LettuceConverters$1.convert(LettuceConverters.java:217) ~[spring-data-redis-2.1.5.RELEASE.jar!/:2.1.5.RELEASE]
at org.springframework.data.redis.connection.lettuce.LettuceConverters.partitionsToClusterNodes(LettuceConverters.java:716) ~[spring-data-redis-2.1.5.RELEASE.jar!/:2.1.5.RELEASE]
at org.springframework.data.redis.connection.lettuce.LettuceClusterTopologyProvider.getTopology(LettuceClusterTopologyProvider.java:53) ~[spring-data-redis-2.1.5.RELEASE.jar!/:2.1.5.RELEASE]
at org.springframework.data.redis.connection.ClusterCommandExecutor.getClusterTopology(ClusterCommandExecutor.java:332) ~[spring-data-redis-2.1.5.RELEASE.jar!/:2.1.5.RELEASE]
at org.springframework.data.redis.connection.ClusterCommandExecutor.executeCommandOnArbitraryNode(ClusterCommandExecutor.java:110) ~[spring-data-redis-2.1.5.RELEASE.jar!/:2.1.5.RELEASE]
at org.springframework.data.redis.connection.lettuce.LettuceClusterConnection.clusterGetClusterInfo(LettuceClusterConnection.java:351) ~[spring-data-redis-2.1.5.RELEASE.jar!/:2.1.5.RELEASE]
at org.springframework.boot.actuate.redis.RedisHealthIndicator.doHealthCheck(RedisHealthIndicator.java:58) ~[spring-boot-actuator-2.1.6.RELEASE.jar!/:2.1.6.RELEASE]
Current Behavior
Configured LettuceClientConfiguration and set topology refresh, but in high concurrency scenarios, occasionally prompts this error, would like to help analyse the cause, thanks.
Hey @FrankCy,
from the stacktrace I can only assume you are having issue with the Spring Data Redis and not the Lettuce drive itself? Perhaps this issue would be better suited there?
Bug Report
[http-nio-11943-exec-2] [] Redis health check failed java.util.ConcurrentModificationException: null at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:909) ~[?:1.8.0_221] at java.util.ArrayList$Itr.next(ArrayList.java:859) ~[?:1.8.0_221] at org.springframework.data.redis.connection.lettuce.LettuceConverters$1.convert(LettuceConverters.java:226) ~[spring-data-redis-2.1.5.RELEASE.jar!/:2.1.5.RELEASE] at org.springframework.data.redis.connection.lettuce.LettuceConverters$1.convert(LettuceConverters.java:217) ~[spring-data-redis-2.1.5.RELEASE.jar!/:2.1.5.RELEASE] at org.springframework.data.redis.connection.lettuce.LettuceConverters.partitionsToClusterNodes(LettuceConverters.java:716) ~[spring-data-redis-2.1.5.RELEASE.jar!/:2.1.5.RELEASE] at org.springframework.data.redis.connection.lettuce.LettuceClusterTopologyProvider.getTopology(LettuceClusterTopologyProvider.java:53) ~[spring-data-redis-2.1.5.RELEASE.jar!/:2.1.5.RELEASE] at org.springframework.data.redis.connection.ClusterCommandExecutor.getClusterTopology(ClusterCommandExecutor.java:332) ~[spring-data-redis-2.1.5.RELEASE.jar!/:2.1.5.RELEASE] at org.springframework.data.redis.connection.ClusterCommandExecutor.executeCommandOnArbitraryNode(ClusterCommandExecutor.java:110) ~[spring-data-redis-2.1.5.RELEASE.jar!/:2.1.5.RELEASE] at org.springframework.data.redis.connection.lettuce.LettuceClusterConnection.clusterGetClusterInfo(LettuceClusterConnection.java:351) ~[spring-data-redis-2.1.5.RELEASE.jar!/:2.1.5.RELEASE] at org.springframework.boot.actuate.redis.RedisHealthIndicator.doHealthCheck(RedisHealthIndicator.java:58) ~[spring-boot-actuator-2.1.6.RELEASE.jar!/:2.1.6.RELEASE]
Current Behavior
Configured LettuceClientConfiguration and set topology refresh, but in high concurrency scenarios, occasionally prompts this error, would like to help analyse the cause, thanks.
Stack trace
```java ```Input Code
Input Code
```java public LettuceClientConfiguration clientConfiguration(ClientResources clientResources,GenericObjectPoolConfig genericObjectPoolConfig) { ClusterTopologyRefreshOptions topologyRefreshOptions= ClusterTopologyRefreshOptions.builder() .enablePeriodicRefresh(Duration.ofSeconds(period)) .enableAllAdaptiveRefreshTriggers().build(); ClusterClientOptions clusterClientOptions = ClusterClientOptions.builder() .timeoutOptions(TimeoutOptions.enabled(Duration.ofSeconds(period))) .topologyRefreshOptions(topologyRefreshOptions) .build(); LettuceClientConfiguration lettuceClientConfiguration = LettucePoolingClientConfiguration.builder() .commandTimeout(Duration.ofSeconds(timeout)) .clientResources(clientResources) .clientOptions(clusterClientOptions) .poolConfig(genericObjectPoolConfig) .build(); return lettuceClientConfiguration; } ```Expected behavior/code
Environment