Author: junping_du Date: Thu Dec 12 03:04:43 2013 New Revision: 1550335 URL: http://svn.apache.org/r1550335 Log: HDFS-5637. Try to refeatchToken while local read InvalidToken occurred. (Liang Xie via junping_du)
Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSInputStream.java Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt?rev=1550335&r1=1550334&r2=1550335&view=diff ============================================================================== --- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt (original) +++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt Thu Dec 12 03:04:43 2013 @@ -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) Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSInputStream.java URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSInputStream.java?rev=1550335&r1=1550334&r2=1550335&view=diff ============================================================================== --- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSInputStream.java (original) +++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSInputStream.java Thu Dec 12 03:04:43 2013 @@ -65,6 +65,7 @@ import org.apache.hadoop.ipc.RemoteExcep 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 @@ implements ByteBufferReadable, CanSetDro // 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 @@ implements ByteBufferReadable, CanSetDro // 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);