Skip to content

Commit 24bd540

Browse files
committed
xds: Fix WRR test flake with TSAN
Fixes: ``` org.mockito.exceptions.verification.TooManyActualInvocations: metricSink.addLongCounter( <custom argument matcher>, 1L, [directaddress:///wrr-metrics], [, ] ); Wanted 1 time: -> at io.grpc.xds.WeightedRoundRobinLoadBalancerTest.metricWithRealChannel(WeightedRoundRobinLoadBalancerTest.java:1307) But was 2 times: -> at io.grpc.internal.MetricRecorderImpl.addLongCounter(MetricRecorderImpl.java:103) -> at io.grpc.internal.MetricRecorderImpl.addLongCounter(MetricRecorderImpl.java:103) at io.grpc.xds.WeightedRoundRobinLoadBalancerTest.metricWithRealChannel(WeightedRoundRobinLoadBalancerTest.java:1307) ```
1 parent 226b1e5 commit 24bd540

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

xds/src/test/java/io/grpc/xds/WeightedRoundRobinLoadBalancerTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import static org.mockito.AdditionalAnswers.delegatesTo;
2222
import static org.mockito.ArgumentMatchers.argThat;
2323
import static org.mockito.Mockito.any;
24+
import static org.mockito.Mockito.atLeast;
2425
import static org.mockito.Mockito.eq;
2526
import static org.mockito.Mockito.mock;
2627
import static org.mockito.Mockito.never;
@@ -1303,8 +1304,8 @@ public void metricWithRealChannel() throws Exception {
13031304
assertThat(recorder.getError()).isNull();
13041305

13051306
// Make sure at least one metric works. The other tests will make sure other metrics and the
1306-
// edge cases are working.
1307-
verify(metrics).addLongCounter(
1307+
// edge cases are working. Since this is racy, we just care it happened at least once.
1308+
verify(metrics, atLeast(1)).addLongCounter(
13081309
argThat((instr) -> instr.getName().equals("grpc.lb.wrr.rr_fallback")),
13091310
eq(1L),
13101311
eq(Arrays.asList("directaddress:///wrr-metrics")),

0 commit comments

Comments
 (0)