Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
In fiber 2.0, when Traffic Rules are used with
Selective
routing strategy in standard ensembler setup. Underlying, the router are composed of two nestedlazy router
. With the defaultExhaustive
routing strategy, it is composed of a parentlazy router
(which is used for traffic splitting) and childeager router
(to call all routers in parallel).Fiber 2.1-rc1 fixes the above problem with route request duration metric but introduce another bug to route component metric To explain in context
Fiber 2.0
Step 1 Parent layer - lazy router (for both routing strategy)
TrafficSplittingStrategy
and obtain the traffic rule labelsStep 2a Second layer - eager router (exhaustive strategy)
DefaultTuringRoutingStrategy
and get empty labelStep 2b Second layer - lazy router (selective strategy)
DefaultTuringRoutingStrategy
and get empty labelDefaultTuringRoutingStrategy
which logs metric incorrectly)Step 3 Back to first parent layer - lazy router (for both routing strategy)
TrafficSplittingStrategy
Fiber 2.1-rc1
Step 1 Parent layer - lazy router (for both routing strategy), no change from the above
TrafficSplittingStrategy
and obtain the traffic rule labelsStep 2a Second layer - eager router (exhaustive strategy)
DefaultTuringRoutingStrategy
, get empty label and merge labels with parent's labelStep 2b Second layer - lazy router (selective strategy)
DefaultTuringRoutingStrategy
, get empty label and merge labels with parent's labelStep 3 Back to first parent layer - lazy router (for both routing strategy)
TrafficSplittingStrategy
by merging back return label, causing double labellingFundamentally, this behaviour occur due to eager and lazy router calling routes with different sequence.
Hence this PR reverts Fiber 2.1-rc1, until a solution fixes both metrics.