You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Currently in GrpclbState, subchannel state change produces a new RoundRobinPicker, which has dropIndex initially 0. This may cause the client to drop more or less percentage of requests than the percentage of drop entries in the list.
To fix the problem, the dropIndex of the previous picker should be passed to the new picker, if the new picker is due to subchannel state change. dropIndex should be a mutable integer (maybe AtomicInteger) shared by the previous and new pickers, so that the new picker doesn't take a premature snapshot of it.
In the case where the balancer sends a new drop list, dropIndex will keep starting from 0.