Closed lcg72 closed 4 years ago
Hi @lcg72, we detect non-English characters in the issue. This comment is an auto translation from @nacos-bot to help other users to understand this issue. We encourage you to describe your issue in English which is more friendly to other users.
Type: bug report
The client is sporadic after startup, causing the normal registration service to fail to be obtained. It is often necessary to restart the reference to the nacos client service to be normal. The exception information is as follows:
reactor.core.Exceptions$ErrorCallbackNotImplemented: java.util.ConcurrentModificationException Caused by: java.util.ConcurrentModificationException: null at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:909) ~[na:1.8.0_202] at java.util.ArrayList$Itr.next(ArrayList.java:859) ~[na:1.8.0_202] at reactor.core.publisher.FluxIterable$IterableSubscription.poll(FluxIterable.java:389) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:634) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxFlatMap$FlatMapMain.drain(FluxFlatMap.java:540) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxFlatMap$FlatMapInner.onSubscribe(FluxFlatMap.java:924) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:139) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:63) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.Flux.subscribe(Flux.java:7799) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:243) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:201) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap.java:335) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:139) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:63) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxFlatMap.subscribe(FluxFlatMap.java:97) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxMap.subscribe(FluxMap.java:62) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxMap.subscribe(FluxMap.java:62) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.Flux.subscribe(Flux.java:7799) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:243) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:201) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap.java:335) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:139) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:63) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxFlatMap.subscribe(FluxFlatMap.java:97) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.MonoCollectList.subscribe(MonoCollectList.java:40) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.MonoMapFuseable.subscribe(MonoMapFuseable.java:59) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.MonoFlattenIterable.subscribe(MonoFlattenIterable.java:101) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxMaterialize.subscribe(FluxMaterialize.java:40) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.MonoCollectList.subscribe(MonoCollectList.java:40) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.MonoPeekFuseable.subscribe(MonoPeekFuseable.java:74) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.MonoFlattenIterable.subscribe(MonoFlattenIterable.java:101) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxDematerialize.subscribe(FluxDematerialize.java:39) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxDefer.subscribe(FluxDefer.java:54) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.Flux.subscribe(Flux.java:7799) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.Flux.subscribeWith(Flux.java:7963) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.Flux.subscribe(Flux.java:7792) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.Flux.subscribe(Flux.java:7756) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.Flux.subscribe(Flux.java:7674) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at org.springframework.cloud.gateway.filter.WeightCalculatorWebFilter.lambda$onApplicationEvent$0(WeightCalculatorWebFilter.java:133) ~[spring-cloud-gateway-core-2.1.1.RELEASE.jar!/:2.1.1.RELEASE] at org.springframework.beans.factory.ObjectProvider.ifAvailable(ObjectProvider.java:93) ~[spring-beans-5.1.7.RELEASE.jar!/:5.1.7.RELEASE] at org.springframework.cloud.gateway.filter.WeightCalculatorWebFilter.onApplicationEvent(WeightCalculatorWebFilter.java:133) ~[spring-cloud-gateway-core-2.1.1.RELEASE.jar!/:2.1.1.RELEASE] at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) ~[spring-context-5.1.7.RELEASE.jar!/:5.1.7.RELEASE] at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) ~[spring-context-5.1.7.RELEASE.jar!/:5.1.7.RELEASE] at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) ~[spring-context-5.1.7.RELEASE.jar!/:5.1.7.RELEASE] at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:402) ~[spring-context-5.1.7.RELEASE.jar!/:5.1.7.RELEASE] at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:359) ~[spring-context-5.1.7.RELEASE.jar!/:5.1.7.RELEASE] at org.springframework.cloud.gateway.route.RouteRefreshListener.reset(RouteRefreshListener.java:68) ~[spring-cloud-gateway-core-2.1.1.RELEASE.jar!/:2.1.1.RELEASE] at org.springframework.cloud.gateway.route.RouteRefreshListener.resetIfNeeded(RouteRefreshListener.java:63) ~[spring-cloud-gateway-core-2.1.1.RELEASE.jar!/:2.1.1.RELEASE] at org.springframework.cloud.gateway.route.RouteRefreshListener.onApplicationEvent(RouteRefreshListener.java:57) ~[spring-cloud-gateway-core-2.1.1.RELEASE.jar!/:2.1.1.RELEASE] at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) ~[spring-context-5.1.7.RELEASE.jar!/:5.1.7.RELEASE] at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) ~[spring-context-5.1.7.RELEASE.jar!/:5.1.7.RELEASE] at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) ~[spring-context-5.1.7.RELEASE.jar!/:5.1.7.RELEASE] at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:402) ~[spring-context-5.1.7.RELEASE.jar!/:5.1.7.RELEASE] at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:359) ~[spring-context-5.1.7.RELEASE.jar!/:5.1.7.RELEASE] at org.springframework.cloud.alibaba.nacos.discovery.NacosWatch.lambda$nacosServicesWatch$0(NacosWatch.java:156) ~[spring-cloud-alibaba-nacos-discovery-0.2.2.RELEASE.jar!/:0.2.2.RELEASE] at com.alibaba.nacos.client.naming.core.EventDispatcher$Notifier.run(EventDispatcher.java:128) ~[nacos-client-1.0.0.jar!/:na] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_202] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_202] at java.lang.Thread.run(Thread.java:748) [na:1.8.0_202]
K8s, nacos 1.1.0, client springcloud Greenwich.SR1, nacos client 0.2.2.RELEASE
这个异常看起来是你应用自身的异常,有并发访问问题。
Issue Description
Type: bug report
Describe what happened (or what feature you want)
客户端启动后偶发性异常,造成不能正常获取正常注册的服务。往往需要重启引用nacos客户端端服务才能正常。异常信息如下:
Describe what you expected to happen
reactor.core.Exceptions$ErrorCallbackNotImplemented: java.util.ConcurrentModificationException Caused by: java.util.ConcurrentModificationException: null at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:909) ~[na:1.8.0_202] at java.util.ArrayList$Itr.next(ArrayList.java:859) ~[na:1.8.0_202] at reactor.core.publisher.FluxIterable$IterableSubscription.poll(FluxIterable.java:389) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:634) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxFlatMap$FlatMapMain.drain(FluxFlatMap.java:540) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxFlatMap$FlatMapInner.onSubscribe(FluxFlatMap.java:924) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:139) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:63) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.Flux.subscribe(Flux.java:7799) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:243) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:201) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap.java:335) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:139) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:63) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxFlatMap.subscribe(FluxFlatMap.java:97) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxMap.subscribe(FluxMap.java:62) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxMap.subscribe(FluxMap.java:62) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.Flux.subscribe(Flux.java:7799) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxIterable$IterableSubscription.slowPath(FluxIterable.java:243) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxIterable$IterableSubscription.request(FluxIterable.java:201) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxFlatMap$FlatMapMain.onSubscribe(FluxFlatMap.java:335) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:139) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:63) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxFlatMap.subscribe(FluxFlatMap.java:97) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.MonoCollectList.subscribe(MonoCollectList.java:40) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.MonoMapFuseable.subscribe(MonoMapFuseable.java:59) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.MonoFlattenIterable.subscribe(MonoFlattenIterable.java:101) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxMaterialize.subscribe(FluxMaterialize.java:40) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.MonoCollectList.subscribe(MonoCollectList.java:40) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.MonoPeekFuseable.subscribe(MonoPeekFuseable.java:74) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.MonoFlattenIterable.subscribe(MonoFlattenIterable.java:101) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxDematerialize.subscribe(FluxDematerialize.java:39) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.FluxDefer.subscribe(FluxDefer.java:54) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.Flux.subscribe(Flux.java:7799) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.Flux.subscribeWith(Flux.java:7963) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.Flux.subscribe(Flux.java:7792) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.Flux.subscribe(Flux.java:7756) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at reactor.core.publisher.Flux.subscribe(Flux.java:7674) ~[reactor-core-3.2.9.RELEASE.jar!/:3.2.9.RELEASE] at org.springframework.cloud.gateway.filter.WeightCalculatorWebFilter.lambda$onApplicationEvent$0(WeightCalculatorWebFilter.java:133) ~[spring-cloud-gateway-core-2.1.1.RELEASE.jar!/:2.1.1.RELEASE] at org.springframework.beans.factory.ObjectProvider.ifAvailable(ObjectProvider.java:93) ~[spring-beans-5.1.7.RELEASE.jar!/:5.1.7.RELEASE] at org.springframework.cloud.gateway.filter.WeightCalculatorWebFilter.onApplicationEvent(WeightCalculatorWebFilter.java:133) ~[spring-cloud-gateway-core-2.1.1.RELEASE.jar!/:2.1.1.RELEASE] at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) ~[spring-context-5.1.7.RELEASE.jar!/:5.1.7.RELEASE] at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) ~[spring-context-5.1.7.RELEASE.jar!/:5.1.7.RELEASE] at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) ~[spring-context-5.1.7.RELEASE.jar!/:5.1.7.RELEASE] at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:402) ~[spring-context-5.1.7.RELEASE.jar!/:5.1.7.RELEASE] at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:359) ~[spring-context-5.1.7.RELEASE.jar!/:5.1.7.RELEASE] at org.springframework.cloud.gateway.route.RouteRefreshListener.reset(RouteRefreshListener.java:68) ~[spring-cloud-gateway-core-2.1.1.RELEASE.jar!/:2.1.1.RELEASE] at org.springframework.cloud.gateway.route.RouteRefreshListener.resetIfNeeded(RouteRefreshListener.java:63) ~[spring-cloud-gateway-core-2.1.1.RELEASE.jar!/:2.1.1.RELEASE] at org.springframework.cloud.gateway.route.RouteRefreshListener.onApplicationEvent(RouteRefreshListener.java:57) ~[spring-cloud-gateway-core-2.1.1.RELEASE.jar!/:2.1.1.RELEASE] at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) ~[spring-context-5.1.7.RELEASE.jar!/:5.1.7.RELEASE] at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) ~[spring-context-5.1.7.RELEASE.jar!/:5.1.7.RELEASE] at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) ~[spring-context-5.1.7.RELEASE.jar!/:5.1.7.RELEASE] at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:402) ~[spring-context-5.1.7.RELEASE.jar!/:5.1.7.RELEASE] at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:359) ~[spring-context-5.1.7.RELEASE.jar!/:5.1.7.RELEASE] at org.springframework.cloud.alibaba.nacos.discovery.NacosWatch.lambda$nacosServicesWatch$0(NacosWatch.java:156) ~[spring-cloud-alibaba-nacos-discovery-0.2.2.RELEASE.jar!/:0.2.2.RELEASE] at com.alibaba.nacos.client.naming.core.EventDispatcher$Notifier.run(EventDispatcher.java:128) ~[nacos-client-1.0.0.jar!/:na] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_202] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_202] at java.lang.Thread.run(Thread.java:748) [na:1.8.0_202]
How to reproduce it (as minimally and precisely as possible)
Tell us your environment
k8s、nacos 1.1.0、客户端springcloud Greenwich.SR1、nacos客户端0.2.2.RELEASE
Anything else we need to know?