[ https://issues.apache.org/jira/browse/SCB-1450?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Willem Jiang updated SCB-1450: ------------------------------ Fix Version/s: java-chassis-1.3.0 > Microservice instance may get stuck when watch connection to sc is recovered > and pulling instance action is executed in eventloop thread > ---------------------------------------------------------------------------------------------------------------------------------------- > > Key: SCB-1450 > URL: https://issues.apache.org/jira/browse/SCB-1450 > Project: Apache ServiceComb > Issue Type: Improvement > Components: Java-Chassis > Reporter: Liu HuaiZhou > Priority: Major > Fix For: java-chassis-1.3.0 > > Time Spent: 10m > Remaining Estimate: 0h > > If you set property of servicecomb.service.registry.instance.watch to true > and then set the peoperty of > servicecomb.service.registry.client.eventLoopPoolSize to the smaller value as > you can ,like 2. Unluckily, service center crashed..The following poor > scenario you may fall in: > 1 You had been informed while Service Center recovered a few minutes > later.It is so sad ,you can't get micro-service instance information from the > Service Center. > 2 You can never to shutdown your micro-service instance gracefully, > Following are the dump logs: > [ WARN ] [2019-06-11 22:32:38.417] [178.42.0.21] > [vertx-blocked-thread-checker] > [io.vertx.core.impl.BlockedThreadChecker$1.run(BlockedThreadChecker.java:55)] > - Thread Thread[registry-vert.x-eventloop-thread-2,5,main] has been blocked > for 20417526 ms, time limit is 2000 ms > io.vertx.core.VertxException: Thread blocked > at sun.misc.Unsafe.park(Native Method) ~[?:1.8.0_212] > at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) > ~[?:1.8.0_212] > at > java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836) > ~[?:1.8.0_212] > at > java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:997) > ~[?:1.8.0_212] > at > java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1304) > ~[?:1.8.0_212] > at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:231) > ~[?:1.8.0_212] > at > org.apache.servicecomb.serviceregistry.client.http.ServiceRegistryClientImpl.findServiceInstances(ServiceRegistryClientImpl.java:739) > ~[service-registry-1.0.0.B003.H69.jar:1.0.0.B003.H69] > at > org.apache.servicecomb.serviceregistry.registry.AbstractServiceRegistry.findServiceInstances(AbstractServiceRegistry.java:236) > ~[service-registry-1.0.0.B003.H69.jar:1.0.0.B003.H69] > at > org.apache.servicecomb.serviceregistry.RegistryUtils.findServiceInstances(RegistryUtils.java:231) > ~[service-registry-1.0.0.B003.H69.jar:1.0.0.B003.H69] > at > org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions.pullInstances(MicroserviceVersions.java:138) > ~[service-registry-1.0.0.B003.H69.jar:1.0.0.B003.H69] > at > org.apache.servicecomb.serviceregistry.consumer.MicroserviceVersions.submitPull(MicroserviceVersions.java:130) > ~[service-registry-1.0.0.B003.H69.jar:1.0.0.B003.H69] > at > org.apache.servicecomb.serviceregistry.consumer.MicroserviceManager.refreshInstances(MicroserviceManager.java:99) > ~[service-registry-1.0.0.B003.H69.jar:1.0.0.B003.H69 -- This message was sent by Atlassian Jira (v8.3.2#803003)