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.
This commit is contained in:
Eric Anderson 2024-08-17 10:50:06 -07:00
parent 2c93791c98
commit 82a8d57396
2 changed files with 4 additions and 17 deletions

View File

@ -385,11 +385,7 @@ final class PickFirstLeafLoadBalancer extends LoadBalancer {
scheduleNextConnection();
break;
case CONNECTING:
if (enableHappyEyeballs) {
scheduleNextConnection();
} else {
subchannelData.subchannel.requestConnection();
}
scheduleNextConnection();
break;
case TRANSIENT_FAILURE:
addressIndex.increment();

View File

@ -361,11 +361,7 @@ public class PickFirstLeafLoadBalancerTest {
// Second acceptResolvedAddresses shouldn't do anything
loadBalancer.acceptResolvedAddresses(
ResolvedAddresses.newBuilder().setAddresses(servers).setAttributes(affinity).build());
if (enableHappyEyeballs) {
inOrder.verify(mockSubchannel1, never()).requestConnection();
} else {
inOrder.verify(mockSubchannel1, times(1)).requestConnection();
}
inOrder.verify(mockSubchannel1, never()).requestConnection();
inOrder.verify(mockHelper, never()).updateBalancingState(any(), any());
}
@ -862,8 +858,7 @@ public class PickFirstLeafLoadBalancerTest {
loadBalancer.requestConnection();
inOrder.verify(mockSubchannel2).start(stateListenerCaptor.capture());
SubchannelStateListener stateListener2 = stateListenerCaptor.getValue();
int expectedRequests = enableHappyEyeballs ? 1 : 2;
inOrder.verify(mockSubchannel2, times(expectedRequests)).requestConnection();
inOrder.verify(mockSubchannel2).requestConnection();
stateListener2.onSubchannelState(ConnectivityStateInfo.forNonError(CONNECTING));
@ -871,11 +866,7 @@ public class PickFirstLeafLoadBalancerTest {
loadBalancer.requestConnection();
inOrder.verify(mockHelper, never()).updateBalancingState(any(), any());
inOrder.verify(mockSubchannel1, never()).requestConnection();
if (enableHappyEyeballs) {
inOrder.verify(mockSubchannel2, never()).requestConnection();
} else {
inOrder.verify(mockSubchannel2).requestConnection();
}
inOrder.verify(mockSubchannel2, never()).requestConnection();
}
@Test