DENG FEI created HDFS-12832: ------------------------------- Summary: INode.getFullPathName may throw ArrayIndexOutOfBoundsException lead to NameNode exit Key: HDFS-12832 URL: https://issues.apache.org/jira/browse/HDFS-12832 Project: Hadoop HDFS Issue Type: Bug Components: namenode Affects Versions: 3.0.0-beta1, 2.7.4 Reporter: DENG FEI Priority: Critical
{code:title=INode.java|borderStyle=solid} public String getFullPathName() { // Get the full path name of this inode. if (isRoot()) { return Path.SEPARATOR; } // compute size of needed bytes for the path int idx = 0; for (INode inode = this; inode != null; inode = inode.getParent()) { // add component + delimiter (if not tail component) idx += inode.getLocalNameBytes().length + (inode != this ? 1 : 0); } byte[] path = new byte[idx]; for (INode inode = this; inode != null; inode = inode.getParent()) { if (inode != this) { path[--idx] = Path.SEPARATOR_CHAR; } byte[] name = inode.getLocalNameBytes(); idx -= name.length; System.arraycopy(name, 0, path, idx, name.length); } return DFSUtil.bytes2String(path); } {code} We found ArrayIndexOutOfBoundsException at _{color:#707070}System.arraycopy(name, 0, path, idx, name.length){color}_ when ReplicaMonitor work ,and the NameNode will quit. It seems the two loop is not synchronized, the path's length is changed. -- This message was sent by Atlassian JIRA (v6.4.14#64029) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-dev-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-dev-h...@hadoop.apache.org