diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/client/api/impl/TimelineClientImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/client/api/impl/TimelineClientImpl.java index ef46229..fe24245 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/client/api/impl/TimelineClientImpl.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/client/api/impl/TimelineClientImpl.java @@ -24,6 +24,7 @@ import java.net.ConnectException; import java.net.HttpURLConnection; import java.net.InetSocketAddress; +import java.net.SocketTimeoutException; import java.net.URI; import java.net.URL; import java.net.URLConnection; @@ -466,7 +467,13 @@ public Object run() throws IOException { @Override public boolean shouldRetryOn(Exception e) { - // Only retry on connection exceptions + // retry on socket timeout exceptions + if (e.getCause() instanceof AuthenticationException) { + AuthenticationException exception = + (AuthenticationException)e.getCause(); + return (exception.getCause() instanceof SocketTimeoutException); + } + // retry on connection exceptions return (e instanceof ConnectException); } };