Revert "xds: better error handling to avoid RPC hangup"

This reverts commit a223263134.
This commit is contained in:
ZHANG Dapeng 2020-01-28 15:36:32 -08:00 committed by GitHub
parent 64e827d996
commit 2eccdb8337
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 0 additions and 14 deletions

View File

@ -410,7 +410,6 @@ final class LookasideLb extends LoadBalancer {
@Override @Override
public void onError(Status error) { public void onError(Status error) {
channelLogger.log(ChannelLogLevel.ERROR, "EDS load balancer received an error: {0}", error); channelLogger.log(ChannelLogLevel.ERROR, "EDS load balancer received an error: {0}", error);
lookasideLbHelper.updateBalancingState(TRANSIENT_FAILURE, new ErrorPicker(error));
endpointUpdateCallback.onError(); endpointUpdateCallback.onError();
} }
} }

View File

@ -28,7 +28,6 @@ import io.grpc.Status;
import io.grpc.SynchronizationContext.ScheduledHandle; import io.grpc.SynchronizationContext.ScheduledHandle;
import io.grpc.util.ForwardingLoadBalancerHelper; import io.grpc.util.ForwardingLoadBalancerHelper;
import io.grpc.xds.LookasideLb.EndpointUpdateCallback; import io.grpc.xds.LookasideLb.EndpointUpdateCallback;
import io.grpc.xds.XdsSubchannelPickers.ErrorPicker;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import javax.annotation.CheckForNull; import javax.annotation.CheckForNull;
import javax.annotation.Nullable; import javax.annotation.Nullable;
@ -119,10 +118,6 @@ final class XdsLoadBalancer2 extends LoadBalancer {
@Override @Override
public void run() { public void run() {
helper.updateBalancingState(
ConnectivityState.TRANSIENT_FAILURE,
new ErrorPicker(Status.UNAVAILABLE.withDescription(
"Channel is not ready when timeout for entering fallback mode happens")));
useFallbackPolicy(); useFallbackPolicy();
} }
} }

View File

@ -666,12 +666,9 @@ public class LookasideLbTest {
public void verifyErrorPropagation() { public void verifyErrorPropagation() {
deliverResolvedAddresses(new XdsConfig(null, null, "edsServiceName1", null)); deliverResolvedAddresses(new XdsConfig(null, null, "edsServiceName1", null));
verify(helper, never()).updateBalancingState(
eq(TRANSIENT_FAILURE), any(SubchannelPicker.class));
verify(edsUpdateCallback, never()).onError(); verify(edsUpdateCallback, never()).onError();
// Forwarding 20 seconds so that the xds client will deem EDS resource not available. // Forwarding 20 seconds so that the xds client will deem EDS resource not available.
fakeClock.forwardTime(20, TimeUnit.SECONDS); fakeClock.forwardTime(20, TimeUnit.SECONDS);
verify(helper).updateBalancingState(eq(TRANSIENT_FAILURE), any(SubchannelPicker.class));
verify(edsUpdateCallback).onError(); verify(edsUpdateCallback).onError();
} }

View File

@ -19,9 +19,6 @@ package io.grpc.xds;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static io.grpc.ConnectivityState.CONNECTING; import static io.grpc.ConnectivityState.CONNECTING;
import static io.grpc.ConnectivityState.READY; import static io.grpc.ConnectivityState.READY;
import static io.grpc.ConnectivityState.TRANSIENT_FAILURE;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.ArgumentMatchers.same; import static org.mockito.ArgumentMatchers.same;
import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
@ -147,9 +144,7 @@ public class XdsLoadBalancer2Test {
fakeClock.forwardTime(9, TimeUnit.SECONDS); fakeClock.forwardTime(9, TimeUnit.SECONDS);
edsUpdateCallback.onWorking(); edsUpdateCallback.onWorking();
verifyNotInFallbackMode(); verifyNotInFallbackMode();
fakeClock.forwardTime(1, TimeUnit.SECONDS); fakeClock.forwardTime(1, TimeUnit.SECONDS);
verify(helper).updateBalancingState(eq(TRANSIENT_FAILURE), any(SubchannelPicker.class));
verifyInFallbackMode(); verifyInFallbackMode();
SubchannelPicker subchannelPicker = mock(SubchannelPicker.class); SubchannelPicker subchannelPicker = mock(SubchannelPicker.class);