diff --git a/grpclb/src/main/java/io/grpc/grpclb/GrpclbState.java b/grpclb/src/main/java/io/grpc/grpclb/GrpclbState.java index d940fc8832..85f7d6b766 100644 --- a/grpclb/src/main/java/io/grpc/grpclb/GrpclbState.java +++ b/grpclb/src/main/java/io/grpc/grpclb/GrpclbState.java @@ -91,6 +91,9 @@ final class GrpclbState { @VisibleForTesting static final PickResult DROP_PICK_RESULT = PickResult.withDrop(Status.UNAVAILABLE.withDescription("Dropped as requested by balancer")); + @VisibleForTesting + static final Status NO_AVAILABLE_BACKENDS_STATUS = + Status.UNAVAILABLE.withDescription("LoadBalancer responded without any backends"); @VisibleForTesting static final RoundRobinEntry BUFFER_ENTRY = new RoundRobinEntry() { @@ -742,7 +745,8 @@ final class GrpclbState { if (backendList.isEmpty()) { if (lbSentEmptyBackends) { pickList = - Collections.singletonList(new ErrorEntry(Status.UNAVAILABLE)); + Collections.singletonList( + new ErrorEntry(NO_AVAILABLE_BACKENDS_STATUS)); state = TRANSIENT_FAILURE; } else { pickList = Collections.singletonList(BUFFER_ENTRY); diff --git a/grpclb/src/test/java/io/grpc/grpclb/GrpclbLoadBalancerTest.java b/grpclb/src/test/java/io/grpc/grpclb/GrpclbLoadBalancerTest.java index 53b9d0093e..2a07d2786c 100644 --- a/grpclb/src/test/java/io/grpc/grpclb/GrpclbLoadBalancerTest.java +++ b/grpclb/src/test/java/io/grpc/grpclb/GrpclbLoadBalancerTest.java @@ -1939,7 +1939,8 @@ public class GrpclbLoadBalancerTest { inOrder.verify(helper).updateBalancingState(eq(TRANSIENT_FAILURE), pickerCaptor.capture()); RoundRobinPicker errorPicker = (RoundRobinPicker) pickerCaptor.getValue(); - assertThat(errorPicker.pickList).containsExactly(new ErrorEntry(Status.UNAVAILABLE)); + assertThat(errorPicker.pickList) + .containsExactly(new ErrorEntry(GrpclbState.NO_AVAILABLE_BACKENDS_STATUS)); lbResponseObserver.onNext(buildLbResponse(Collections.emptyList()));