aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLarry Safran <lsafran@google.com>2024-05-08 17:14:36 -0700
committerGitHub <noreply@github.com>2024-05-08 17:14:36 -0700
commit1d2642924830418c79dabe39b1794ca4e4a120c6 (patch)
tree148421ee4ab9e9965162965e55b8c8244441c49a
parentb7c606747282f9a300646b5ff9d2842df5f337e3 (diff)
downloadgrpc-grpc-java-upstream-v1.63.x.tar.gz
Change HappyEyeballs and new pick first LB flags default value to false (1.63.x backport) (#11176)upstream-v1.63.x
* port PR 11120 * Revert backported changes that aren't relevant for v1.63.x * Revert backported changes that aren't relevant for v1.63.x
-rw-r--r--core/src/main/java/io/grpc/internal/PickFirstLeafLoadBalancer.java4
-rw-r--r--core/src/main/java/io/grpc/internal/PickFirstLoadBalancerProvider.java13
-rw-r--r--core/src/test/java/io/grpc/internal/PickFirstLeafLoadBalancerTest.java8
-rw-r--r--xds/src/main/java/io/grpc/xds/XdsEndpointResource.java2
-rw-r--r--xds/src/test/java/io/grpc/xds/RingHashLoadBalancerTest.java3
-rw-r--r--xds/src/test/java/io/grpc/xds/WeightedRoundRobinLoadBalancerTest.java4
6 files changed, 22 insertions, 12 deletions
diff --git a/core/src/main/java/io/grpc/internal/PickFirstLeafLoadBalancer.java b/core/src/main/java/io/grpc/internal/PickFirstLeafLoadBalancer.java
index 16aa38228..b2105cb64 100644
--- a/core/src/main/java/io/grpc/internal/PickFirstLeafLoadBalancer.java
+++ b/core/src/main/java/io/grpc/internal/PickFirstLeafLoadBalancer.java
@@ -61,8 +61,6 @@ final class PickFirstLeafLoadBalancer extends LoadBalancer {
private static final Logger log = Logger.getLogger(PickFirstLeafLoadBalancer.class.getName());
@VisibleForTesting
static final int CONNECTION_DELAY_INTERVAL_MS = 250;
- public static final String GRPC_EXPERIMENTAL_XDS_DUALSTACK_ENDPOINTS =
- "GRPC_EXPERIMENTAL_XDS_DUALSTACK_ENDPOINTS";
private final Helper helper;
private final Map<SocketAddress, SubchannelData> subchannels = new HashMap<>();
private Index addressIndex;
@@ -73,7 +71,7 @@ final class PickFirstLeafLoadBalancer extends LoadBalancer {
private ConnectivityState rawConnectivityState = IDLE;
private ConnectivityState concludedState = IDLE;
private final boolean enableHappyEyeballs =
- GrpcUtil.getFlag(GRPC_EXPERIMENTAL_XDS_DUALSTACK_ENDPOINTS, true);
+ PickFirstLoadBalancerProvider.isEnabledHappyEyeballs();
PickFirstLeafLoadBalancer(Helper helper) {
this.helper = checkNotNull(helper, "helper");
diff --git a/core/src/main/java/io/grpc/internal/PickFirstLoadBalancerProvider.java b/core/src/main/java/io/grpc/internal/PickFirstLoadBalancerProvider.java
index dd862fe70..ad33a0b84 100644
--- a/core/src/main/java/io/grpc/internal/PickFirstLoadBalancerProvider.java
+++ b/core/src/main/java/io/grpc/internal/PickFirstLoadBalancerProvider.java
@@ -33,10 +33,21 @@ import java.util.Map;
* down the address list and sticks to the first that works.
*/
public final class PickFirstLoadBalancerProvider extends LoadBalancerProvider {
+ public static final String GRPC_EXPERIMENTAL_XDS_DUALSTACK_ENDPOINTS =
+ "GRPC_EXPERIMENTAL_XDS_DUALSTACK_ENDPOINTS";
private static final String SHUFFLE_ADDRESS_LIST_KEY = "shuffleAddressList";
static boolean enableNewPickFirst =
- GrpcUtil.getFlag("GRPC_EXPERIMENTAL_ENABLE_NEW_PICK_FIRST", true);
+ GrpcUtil.getFlag("GRPC_EXPERIMENTAL_ENABLE_NEW_PICK_FIRST", false);
+
+ public static boolean isEnabledHappyEyeballs() {
+ return GrpcUtil.getFlag(GRPC_EXPERIMENTAL_XDS_DUALSTACK_ENDPOINTS, false);
+ }
+
+ @VisibleForTesting
+ public static boolean isEnableNewPickFirst() {
+ return enableNewPickFirst;
+ }
@Override
public boolean isAvailable() {
diff --git a/core/src/test/java/io/grpc/internal/PickFirstLeafLoadBalancerTest.java b/core/src/test/java/io/grpc/internal/PickFirstLeafLoadBalancerTest.java
index 92222ac9a..eceb9500e 100644
--- a/core/src/test/java/io/grpc/internal/PickFirstLeafLoadBalancerTest.java
+++ b/core/src/test/java/io/grpc/internal/PickFirstLeafLoadBalancerTest.java
@@ -142,8 +142,8 @@ public class PickFirstLeafLoadBalancerTest {
@Before
public void setUp() {
originalHappyEyeballsEnabledValue =
- System.getProperty(PickFirstLeafLoadBalancer.GRPC_EXPERIMENTAL_XDS_DUALSTACK_ENDPOINTS);
- System.setProperty(PickFirstLeafLoadBalancer.GRPC_EXPERIMENTAL_XDS_DUALSTACK_ENDPOINTS,
+ System.getProperty(PickFirstLoadBalancerProvider.GRPC_EXPERIMENTAL_XDS_DUALSTACK_ENDPOINTS);
+ System.setProperty(PickFirstLoadBalancerProvider.GRPC_EXPERIMENTAL_XDS_DUALSTACK_ENDPOINTS,
enableHappyEyeballs ? "true" : "false");
for (int i = 1; i <= 5; i++) {
@@ -173,9 +173,9 @@ public class PickFirstLeafLoadBalancerTest {
@After
public void tearDown() {
if (originalHappyEyeballsEnabledValue == null) {
- System.clearProperty(PickFirstLeafLoadBalancer.GRPC_EXPERIMENTAL_XDS_DUALSTACK_ENDPOINTS);
+ System.clearProperty(PickFirstLoadBalancerProvider.GRPC_EXPERIMENTAL_XDS_DUALSTACK_ENDPOINTS);
} else {
- System.setProperty(PickFirstLeafLoadBalancer.GRPC_EXPERIMENTAL_XDS_DUALSTACK_ENDPOINTS,
+ System.setProperty(PickFirstLoadBalancerProvider.GRPC_EXPERIMENTAL_XDS_DUALSTACK_ENDPOINTS,
originalHappyEyeballsEnabledValue);
}
diff --git a/xds/src/main/java/io/grpc/xds/XdsEndpointResource.java b/xds/src/main/java/io/grpc/xds/XdsEndpointResource.java
index 770217bfb..0c7e8f46b 100644
--- a/xds/src/main/java/io/grpc/xds/XdsEndpointResource.java
+++ b/xds/src/main/java/io/grpc/xds/XdsEndpointResource.java
@@ -101,7 +101,7 @@ class XdsEndpointResource extends XdsResourceType<EdsUpdate> {
}
private static boolean isEnabledXdsDualStack() {
- return GrpcUtil.getFlag(GRPC_EXPERIMENTAL_XDS_DUALSTACK_ENDPOINTS, true);
+ return GrpcUtil.getFlag(GRPC_EXPERIMENTAL_XDS_DUALSTACK_ENDPOINTS, false);
}
private static EdsUpdate processClusterLoadAssignment(ClusterLoadAssignment assignment)
diff --git a/xds/src/test/java/io/grpc/xds/RingHashLoadBalancerTest.java b/xds/src/test/java/io/grpc/xds/RingHashLoadBalancerTest.java
index d567dea3e..6d555b73e 100644
--- a/xds/src/test/java/io/grpc/xds/RingHashLoadBalancerTest.java
+++ b/xds/src/test/java/io/grpc/xds/RingHashLoadBalancerTest.java
@@ -445,7 +445,8 @@ public class RingHashLoadBalancerTest {
PickResult result = pickerCaptor.getValue().pickSubchannel(args);
assertThat(result.getStatus().isOk()).isTrue();
assertThat(result.getSubchannel()).isNull(); // buffer request
- verify(getSubChannel(servers.get(1))).requestConnection(); // kicked off connection to server2
+ // verify kicked off connection to server2
+ verify(getSubChannel(servers.get(1))).requestConnection();
assertThat(subchannels.size()).isEqualTo(2); // no excessive connection
deliverSubchannelState(getSubChannel(servers.get(1)), CSI_CONNECTING);
diff --git a/xds/src/test/java/io/grpc/xds/WeightedRoundRobinLoadBalancerTest.java b/xds/src/test/java/io/grpc/xds/WeightedRoundRobinLoadBalancerTest.java
index 63077ddcf..edff101d2 100644
--- a/xds/src/test/java/io/grpc/xds/WeightedRoundRobinLoadBalancerTest.java
+++ b/xds/src/test/java/io/grpc/xds/WeightedRoundRobinLoadBalancerTest.java
@@ -52,7 +52,7 @@ import io.grpc.LoadBalancer.SubchannelStateListener;
import io.grpc.Status;
import io.grpc.SynchronizationContext;
import io.grpc.internal.FakeClock;
-import io.grpc.internal.GrpcUtil;
+import io.grpc.internal.PickFirstLoadBalancerProvider;
import io.grpc.internal.TestUtils;
import io.grpc.services.InternalCallMetricRecorder;
import io.grpc.services.MetricReport;
@@ -569,7 +569,7 @@ public class WeightedRoundRobinLoadBalancerTest {
}
private boolean isEnabledHappyEyeballs() {
- return GrpcUtil.getFlag("GRPC_EXPERIMENTAL_XDS_DUALSTACK_ENDPOINTS", true);
+ return PickFirstLoadBalancerProvider.isEnabledHappyEyeballs();
}
@Test