HDFS-10735 Distcp using webhdfs on secure HA clusters fails with StandbyException
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/701c27a7 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/701c27a7 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/701c27a7 Branch: refs/heads/YARN-3368 Commit: 701c27a7762294e1a5fb2b3ac81f5534aa37f667 Parents: 8a9f663 Author: Benoy Antony <be...@apache.org> Authored: Fri Oct 14 10:26:39 2016 -0700 Committer: Benoy Antony <be...@apache.org> Committed: Fri Oct 14 10:26:39 2016 -0700 ---------------------------------------------------------------------- .../java/org/apache/hadoop/hdfs/web/WebHdfsFileSystem.java | 8 ++++++++ 1 file changed, 8 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/701c27a7/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/web/WebHdfsFileSystem.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/web/WebHdfsFileSystem.java b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/web/WebHdfsFileSystem.java index 19de5b5..af43d56 100644 --- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/web/WebHdfsFileSystem.java +++ b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/web/WebHdfsFileSystem.java @@ -91,6 +91,7 @@ import org.apache.hadoop.io.retry.RetryPolicies; import org.apache.hadoop.io.retry.RetryPolicy; import org.apache.hadoop.io.retry.RetryUtils; import org.apache.hadoop.ipc.RemoteException; +import org.apache.hadoop.ipc.StandbyException; import org.apache.hadoop.net.NetUtils; import org.apache.hadoop.security.AccessControlException; import org.apache.hadoop.security.SecurityUtil; @@ -471,6 +472,13 @@ public class WebHdfsFileSystem extends FileSystem } IOException re = JsonUtilClient.toRemoteException(m); + + //check if exception is due to communication with a Standby name node + if (re.getMessage() != null && re.getMessage().endsWith( + StandbyException.class.getSimpleName())) { + LOG.trace("Detected StandbyException", re); + throw new IOException(re); + } // extract UGI-related exceptions and unwrap InvalidToken // the NN mangles these exceptions but the DN does not and may need // to re-fetch a token if either report the token is expired --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org