hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hudson (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDFS-7045) Fix NameNode deadlock when opening file under /.reserved path
Date Fri, 12 Sep 2014 13:45:36 GMT

    [ https://issues.apache.org/jira/browse/HDFS-7045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14131532#comment-14131532
] 

Hudson commented on HDFS-7045:
------------------------------

FAILURE: Integrated in Hadoop-Mapreduce-trunk #1894 (See [https://builds.apache.org/job/Hadoop-Mapreduce-trunk/1894/])
HDFS-7045. Fix NameNode deadlock when opening file under /.reserved path. Contributed by Yi
Liu. (wang: rev 1e684995d7ac20d1c27ca1c1bef37dd2ee00e630)
* hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestRead.java
* hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
* hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSNamesystem.java


> 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
>             Fix For: 2.6.0
>
>         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)

Mime
View raw message