Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
-
Reviewed
Description
This is useful for the cases where there is an injected environment edge and when the first RS RPC request fails causing it to go to the retry block.
In the absence of this , the default timeout would be set to 100 ms and the DelayedUtil class is meant to execute the retry after 100 ms. However as per the getRemainingTime() logic here (https://github.com/apache/hbase/blob/5b01e613fbbb92e243e99a1d199b4ffbb21ed2d9/hbase-procedure/src/main/java/org/apache/hadoop/hbase/procedure2/util/DelayedUtil.java#L94), the equation would be evaluated to
EnvironmentEdgeManager.currentTime() >= EnvironmentEdgeManager.currentTime() + 100 which would never get evaluated to true in case of injected edge and retry never happens. Hence this config helps you to override it to 0 in cases we want to test with a manual injected environment edge so that the retry would succeed
An example would be Master trying to open the meta region even before the RS is online, In this case the retry of opening the meta region would never happen in the case of injected environment edge and master would never finish the initialization
Attachments
Issue Links
- links to