[ https://issues.apache.org/jira/browse/HDFS-7045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14130397#comment-14130397 ]
Andrew Wang commented on HDFS-7045: ----------------------------------- +1, nice find Yi. I'll commit this shortly. > Fix NameNode deadlock when opening file under /.reserved path > ------------------------------------------------------------- > > Key: HDFS-7045 > URL: https://issues.apache.org/jira/browse/HDFS-7045 > Project: Hadoop HDFS > Issue Type: Bug > Components: namenode > Reporter: Yi Liu > Assignee: Yi Liu > Priority: Critical > Attachments: HDFS-7045.001.patch > > > {{resolvePath}} could throw exception in following case, then deadlock. > * open file under path {{/.reserved/raw}} using a non super user. > * open file under path {{/.reserved/.inodes}}. > {{FSNamesystem#getBlockLocationsUpdateTimes}}: > {code} > ... > if (isReadOp) { // first attempt is with readlock > checkOperation(OperationCategory.READ); > readLock(); > } else { // second attempt is with write lock > checkOperation(OperationCategory.WRITE); > writeLock(); // writelock is needed to set accesstime > } > src = resolvePath(src, pathComponents); > try { > ... > } finally { > if (isReadOp) { > readUnlock(); > } else { > writeUnlock(); > } > } > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)