Yi Liu created HDFS-7045:
----------------------------

             Summary: Fix deadlock of open file (in some cases)
                 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


There will be deadlock for current logic as following ({{resolvePath}} could 
throw exception, then deadlock):
In {{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)

Reply via email to