Skip to content

Commit 2152be4

Browse files
committed
Revert "xds: Avoid PriorityLb re-enabling timer on duplicate CONNECTING (grpc#12289)"
This reverts commit 653d076.
1 parent 4ab3739 commit 2152be4

File tree

2 files changed

+1
-53
lines changed

2 files changed

+1
-53
lines changed

xds/src/main/java/io/grpc/xds/PriorityLoadBalancer.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -320,14 +320,13 @@ public void updateBalancingState(final ConnectivityState newState,
320320
if (!children.containsKey(priority)) {
321321
return;
322322
}
323-
ConnectivityState oldState = connectivityState;
324323
connectivityState = newState;
325324
picker = newPicker;
326325

327326
if (deletionTimer != null && deletionTimer.isPending()) {
328327
return;
329328
}
330-
if (newState.equals(CONNECTING) && !oldState.equals(newState)) {
329+
if (newState.equals(CONNECTING)) {
331330
if (!failOverTimer.isPending() && seenReadyOrIdleSinceTransientFailure) {
332331
failOverTimer = syncContext.schedule(new FailOverTask(), 10, TimeUnit.SECONDS,
333332
executor);

xds/src/test/java/io/grpc/xds/PriorityLoadBalancerTest.java

Lines changed: 0 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import static org.mockito.Mockito.atLeastOnce;
2929
import static org.mockito.Mockito.clearInvocations;
3030
import static org.mockito.Mockito.doReturn;
31-
import static org.mockito.Mockito.inOrder;
3231
import static org.mockito.Mockito.mock;
3332
import static org.mockito.Mockito.never;
3433
import static org.mockito.Mockito.times;
@@ -71,7 +70,6 @@
7170
import org.junit.runners.JUnit4;
7271
import org.mockito.ArgumentCaptor;
7372
import org.mockito.Captor;
74-
import org.mockito.InOrder;
7573
import org.mockito.Mock;
7674
import org.mockito.junit.MockitoJUnit;
7775
import org.mockito.junit.MockitoRule;
@@ -556,55 +554,6 @@ public void connectingResetFailOverIfSeenReadyOrIdleSinceTransientFailure() {
556554
assertThat(fooHelpers).hasSize(2);
557555
}
558556

559-
@Test
560-
public void failoverTimerNotRestartedOnDupConnecting() {
561-
InOrder inOrder = inOrder(helper);
562-
PriorityChildConfig priorityChildConfig0 =
563-
new PriorityChildConfig(newChildConfig(fooLbProvider, new Object()), true);
564-
PriorityChildConfig priorityChildConfig1 =
565-
new PriorityChildConfig(newChildConfig(fooLbProvider, new Object()), true);
566-
PriorityLbConfig priorityLbConfig =
567-
new PriorityLbConfig(
568-
ImmutableMap.of("p0", priorityChildConfig0, "p1", priorityChildConfig1),
569-
ImmutableList.of("p0", "p1"));
570-
priorityLb.acceptResolvedAddresses(
571-
ResolvedAddresses.newBuilder()
572-
.setAddresses(ImmutableList.<EquivalentAddressGroup>of())
573-
.setLoadBalancingPolicyConfig(priorityLbConfig)
574-
.build());
575-
// Nothing important about this verify, other than to provide a baseline
576-
inOrder.verify(helper)
577-
.updateBalancingState(eq(CONNECTING), pickerReturns(PickResult.withNoResult()));
578-
assertThat(fooBalancers).hasSize(1);
579-
assertThat(fooHelpers).hasSize(1);
580-
Helper helper0 = Iterables.getOnlyElement(fooHelpers);
581-
582-
// Cause seenReadyOrIdleSinceTransientFailure = true
583-
helper0.updateBalancingState(IDLE, EMPTY_PICKER);
584-
inOrder.verify(helper)
585-
.updateBalancingState(eq(IDLE), pickerReturns(PickResult.withNoResult()));
586-
helper0.updateBalancingState(CONNECTING, EMPTY_PICKER);
587-
588-
// p0 keeps repeating CONNECTING, failover happens
589-
fakeClock.forwardTime(5, TimeUnit.SECONDS);
590-
helper0.updateBalancingState(CONNECTING, EMPTY_PICKER);
591-
fakeClock.forwardTime(5, TimeUnit.SECONDS);
592-
assertThat(fooBalancers).hasSize(2);
593-
assertThat(fooHelpers).hasSize(2);
594-
inOrder.verify(helper, times(2))
595-
.updateBalancingState(eq(CONNECTING), pickerReturns(PickResult.withNoResult()));
596-
Helper helper1 = Iterables.getLast(fooHelpers);
597-
598-
// p0 keeps repeating CONNECTING, no reset of failover timer
599-
helper1.updateBalancingState(IDLE, EMPTY_PICKER); // Stop timer for p1
600-
inOrder.verify(helper)
601-
.updateBalancingState(eq(IDLE), pickerReturns(PickResult.withNoResult()));
602-
helper0.updateBalancingState(CONNECTING, EMPTY_PICKER);
603-
fakeClock.forwardTime(10, TimeUnit.SECONDS);
604-
inOrder.verify(helper, never())
605-
.updateBalancingState(eq(CONNECTING), any());
606-
}
607-
608557
@Test
609558
public void readyToConnectDoesNotFailOverButUpdatesPicker() {
610559
PriorityChildConfig priorityChildConfig0 =

0 commit comments

Comments
 (0)