[ 
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)

Reply via email to