HDFS-5637. Try to refeatchToken while local read InvalidToken occurred. (Liang Xie via junping_du)

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1550335 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Junping Du 2013-12-12 03:04:43 +00:00
parent 9678020e59
commit 8373c4134a
2 changed files with 8 additions and 2 deletions

View File

@ -590,6 +590,9 @@ Release 2.4.0 - UNRELEASED
HDFS-5023. TestSnapshotPathINodes.testAllowSnapshot is failing with jdk7
(Mit Desai via jeagles)
HDFS-5637. Try to refeatchToken while local read InvalidToken occurred.
(Liang Xie via junping_du)
OPTIMIZATIONS
HDFS-5239. Allow FSNamesystem lock fairness to be configurable (daryn)

View File

@ -65,6 +65,7 @@
import org.apache.hadoop.net.NetUtils;
import org.apache.hadoop.net.unix.DomainSocket;
import org.apache.hadoop.security.AccessControlException;
import org.apache.hadoop.security.token.SecretManager.InvalidToken;
import org.apache.hadoop.security.token.Token;
import org.apache.hadoop.util.IdentityHashStore;
@ -590,7 +591,8 @@ private synchronized DatanodeInfo blockSeekTo(long target) throws IOException {
// The encryption key used is invalid.
refetchEncryptionKey--;
dfsClient.clearDataEncryptionKey();
} else if (ex instanceof InvalidBlockTokenException && refetchToken > 0) {
} else if ((ex instanceof InvalidBlockTokenException || ex instanceof InvalidToken)
&& refetchToken > 0) {
DFSClient.LOG.info("Will fetch a new access token and retry, "
+ "access token was invalid when connecting to " + targetAddr
+ " : " + ex);
@ -976,7 +978,8 @@ private void fetchBlockByteRange(LocatedBlock block, long start, long end,
// The encryption key used is invalid.
refetchEncryptionKey--;
dfsClient.clearDataEncryptionKey();
} else if (e instanceof InvalidBlockTokenException && refetchToken > 0) {
} else if ((e instanceof InvalidBlockTokenException || e instanceof InvalidToken)
&& refetchToken > 0) {
DFSClient.LOG.info("Will get a new access token and retry, "
+ "access token was invalid when connecting to " + targetAddr
+ " : " + e);