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)