envoyproxy / envoyproxy/envoy

Setting runtime fraction of numerator 0 and FractionalPercent_HUNDRED for RequestMirrorPolicy ends up using FractionalPercent_THOUSAND

Open
#8,299 3 comments 0 reactions 0 assignees View on GitHub
bug help wanted
Dominant language
C++
Stars
28.9k
Forks
5.6k
Avg merge
1d 20h
Merged PRs (30d)
428

Description

*Title*: *Setting runtime fraction of numerator 0 and FractionalPercent_HUNDRED for RequestMirrorPolicy ends up using FractionalPercent_THOUSAND*

*Description*:
We are rolling our RequestMirrorPolicy, we set the path within the Runtime Fraction but not the default like so:

```go
RuntimeFraction: &core.RuntimeFractionalPercent{
RuntimeKey: policy.RuntimeKey,
DefaultValue: &envoytype.FractionalPercent{
Numerator: 0,
Denominator: envoytype.FractionalPercent_HUNDRED,
},
},
```

But as I change the runtime flag, I am noticing that the runtime fraction is using `FractionalPercent_TEN_THOUSAND` as a denominator based on the aggregated stats.

Since `envoytype.FractionalPercent_HUNDRED` is the default value, I believe envoy is treating `DefaultValue` as a nil value and exercising this code path: https://github.com/envoyproxy/data-plane-api/blob/master/envoy/api/v2/route/route.proto#L640-L645

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.