Skip to content

Commit 82a8d57

Browse files
committed
core: In PF, remove useless requestConnection for CONNECTING subchannel
It doesn't do anything. Call scheduleNextConnection() unconditionally since it is responsible for checking if `enableHappyEyeballs == true`. It's also surprising to check in the CONNECTING case but not the IDLE case.
1 parent 2c93791 commit 82a8d57

File tree

2 files changed

+4
-17
lines changed

2 files changed

+4
-17
lines changed

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

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -385,11 +385,7 @@ public void requestConnection() {
385385
scheduleNextConnection();
386386
break;
387387
case CONNECTING:
388-
if (enableHappyEyeballs) {
389-
scheduleNextConnection();
390-
} else {
391-
subchannelData.subchannel.requestConnection();
392-
}
388+
scheduleNextConnection();
393389
break;
394390
case TRANSIENT_FAILURE:
395391
addressIndex.increment();

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

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -361,11 +361,7 @@ public void pickAfterResolvedAndUnchanged() {
361361
// Second acceptResolvedAddresses shouldn't do anything
362362
loadBalancer.acceptResolvedAddresses(
363363
ResolvedAddresses.newBuilder().setAddresses(servers).setAttributes(affinity).build());
364-
if (enableHappyEyeballs) {
365-
inOrder.verify(mockSubchannel1, never()).requestConnection();
366-
} else {
367-
inOrder.verify(mockSubchannel1, times(1)).requestConnection();
368-
}
364+
inOrder.verify(mockSubchannel1, never()).requestConnection();
369365
inOrder.verify(mockHelper, never()).updateBalancingState(any(), any());
370366
}
371367

@@ -862,20 +858,15 @@ public void requestConnection() {
862858
loadBalancer.requestConnection();
863859
inOrder.verify(mockSubchannel2).start(stateListenerCaptor.capture());
864860
SubchannelStateListener stateListener2 = stateListenerCaptor.getValue();
865-
int expectedRequests = enableHappyEyeballs ? 1 : 2;
866-
inOrder.verify(mockSubchannel2, times(expectedRequests)).requestConnection();
861+
inOrder.verify(mockSubchannel2).requestConnection();
867862

868863
stateListener2.onSubchannelState(ConnectivityStateInfo.forNonError(CONNECTING));
869864

870865
// calling requestConnection is now a no-op
871866
loadBalancer.requestConnection();
872867
inOrder.verify(mockHelper, never()).updateBalancingState(any(), any());
873868
inOrder.verify(mockSubchannel1, never()).requestConnection();
874-
if (enableHappyEyeballs) {
875-
inOrder.verify(mockSubchannel2, never()).requestConnection();
876-
} else {
877-
inOrder.verify(mockSubchannel2).requestConnection();
878-
}
869+
inOrder.verify(mockSubchannel2, never()).requestConnection();
879870
}
880871

881872
@Test

0 commit comments

Comments
 (0)