HDFS-10735 Distcp using webhdfs on secure HA clusters fails with StandbyException
(cherry picked from commit 701c27a7762294e1a5fb2b3ac81f5534aa37f667)
This commit is contained in:
parent
6e0b55fe79
commit
156b92e36b
@ -90,6 +90,7 @@
|
|||||||
import org.apache.hadoop.io.retry.RetryPolicy;
|
import org.apache.hadoop.io.retry.RetryPolicy;
|
||||||
import org.apache.hadoop.io.retry.RetryUtils;
|
import org.apache.hadoop.io.retry.RetryUtils;
|
||||||
import org.apache.hadoop.ipc.RemoteException;
|
import org.apache.hadoop.ipc.RemoteException;
|
||||||
|
import org.apache.hadoop.ipc.StandbyException;
|
||||||
import org.apache.hadoop.net.NetUtils;
|
import org.apache.hadoop.net.NetUtils;
|
||||||
import org.apache.hadoop.security.AccessControlException;
|
import org.apache.hadoop.security.AccessControlException;
|
||||||
import org.apache.hadoop.security.SecurityUtil;
|
import org.apache.hadoop.security.SecurityUtil;
|
||||||
@ -479,6 +480,13 @@ private Path makeAbsolute(Path f) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
IOException re = JsonUtilClient.toRemoteException(m);
|
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
|
// extract UGI-related exceptions and unwrap InvalidToken
|
||||||
// the NN mangles these exceptions but the DN does not and may need
|
// 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 re-fetch a token if either report the token is expired
|
||||||
|
Loading…
x
Reference in New Issue
Block a user