Skip to content

Commit faef9b2

Browse files
committed
Add flag protection
1 parent db05a69 commit faef9b2

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

core/src/main/java/io/grpc/internal/PickFirstLoadBalancer.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@
2222
import static io.grpc.ConnectivityState.SHUTDOWN;
2323
import static io.grpc.ConnectivityState.TRANSIENT_FAILURE;
2424

25+
import com.google.common.annotations.VisibleForTesting;
2526
import com.google.common.base.MoreObjects;
27+
import com.google.common.base.Strings;
2628
import io.grpc.ConnectivityState;
2729
import io.grpc.ConnectivityStateInfo;
2830
import io.grpc.EquivalentAddressGroup;
@@ -44,6 +46,10 @@ final class PickFirstLoadBalancer extends LoadBalancer {
4446
private final Helper helper;
4547
private Subchannel subchannel;
4648
private ConnectivityState currentState = IDLE;
49+
@VisibleForTesting
50+
static boolean enablePickFirstConfig =
51+
!Strings.isNullOrEmpty(System.getenv("GRPC_EXPERIMENTAL_PICKFIRST_LB_CONFIG"))
52+
&& Boolean.parseBoolean(System.getenv("GRPC_EXPERIMENTAL_PICKFIRST_LB_CONFIG"));
4753

4854
PickFirstLoadBalancer(Helper helper) {
4955
this.helper = checkNotNull(helper, "helper");
@@ -61,7 +67,7 @@ public boolean acceptResolvedAddresses(ResolvedAddresses resolvedAddresses) {
6167

6268
// We can optionally be configured to shuffle the address list. This can help better distribute
6369
// the load.
64-
if (resolvedAddresses.getLoadBalancingPolicyConfig() != null) {
70+
if (enablePickFirstConfig && resolvedAddresses.getLoadBalancingPolicyConfig() != null) {
6571
PickFirstLoadBalancerConfig config
6672
= (PickFirstLoadBalancerConfig) resolvedAddresses.getLoadBalancingPolicyConfig();
6773
if (config.shuffleAddressList != null && config.shuffleAddressList) {

core/src/test/java/io/grpc/internal/PickFirstLoadBalancerTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ public void setUp() {
121121
@After
122122
public void tearDown() throws Exception {
123123
verifyNoMoreInteractions(mockArgs);
124+
PickFirstLoadBalancer.enablePickFirstConfig = false;
124125
}
125126

126127
@Test
@@ -143,6 +144,7 @@ public void pickAfterResolved() throws Exception {
143144

144145
@Test
145146
public void pickAfterResolved_shuffle() throws Exception {
147+
PickFirstLoadBalancer.enablePickFirstConfig = true;
146148
loadBalancer.acceptResolvedAddresses(
147149
ResolvedAddresses.newBuilder().setAddresses(servers).setAttributes(affinity)
148150
.setLoadBalancingPolicyConfig(new PickFirstLoadBalancerConfig(true, 123L)).build());

0 commit comments

Comments
 (0)