Haishi Yao created SCB-2077:
-------------------------------

             Summary: The state of ServiceCombServerStats may be broken and the 
isolated servers never be tried
                 Key: SCB-2077
                 URL: https://issues.apache.org/jira/browse/SCB-2077
             Project: Apache ServiceComb
          Issue Type: Bug
          Components: Java-Chassis
    Affects Versions: java-chassis-2.1.1, java-chassis-2.1.0, 
java-chassis-2.0.2, java-chassis-2.0.1, java-chassis-1.3.0
            Reporter: Haishi Yao
            Assignee: Haishi Yao


In some cases the users may run the invocation procedure in the custom thread 
pool and terminate it when the business timeout. Such use cases may break the 
reset operation of 
org.apache.servicecomb.loadbalance.ServiceCombServerStats#globalAllowIsolatedServerTryingFlag
 and leave the flag always false, which causing that no isolated server can get 
the trying chance anymore and the isolated servers can never recover from the 
isolated state.
The solution is to store the Invocation instance applying the trying chance and 
the timestamp of applying. When the invocation procedure is over, the flag will 
be released. Or if there is something wrong and the releasing operation is 
interrupted, the state can be recovered according to the result of 
Invocation#isFinished or whether the period of chance occupation is longer than 
the maxSingleTestWindow.

New config item is added, in order to limit the max length of period of trying 
chance occupation(time unit is millisecond):

{code:java}
servicecomb.loadbalance.isolation.maxSingleTestWindow
{code}




--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to