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

Tsz Wo Nicholas Sze commented on HDFS-8576:
-------------------------------------------

I see your point now after checking the patch in more details. The summary 
"Lease recovery returns false , eventhough recovery happens" is missing leading 
since there is no lease recovery in this case, it only releases the lease.

Some minor comments on the patch:
- The javadoc is inaccurate as mentioned previously.  Let's change it to "if 
the file is already closed, or if the lease can be released and the file can be 
closed."
{code}
+   * @return true if the file is already closed or if lease recovery
+   *         is successful and file is closed.
{code}
- Rename recoverLeaseInternal to isClosed and declare it as final in 
recoverLease.
- Let's change the following
{code}
          boolean isClosed = internalReleaseLease(lease, src, iip, null);
          if(!isClosed)
            throw new RecoveryInProgressException(
                op.getExceptionMessage(src, holder, clientMachine,
                    "lease recovery is in progress. Try again later."));
          return isClosed;
{code}
to
{code}
          if (internalReleaseLease(lease, src, iip, null)) {
            return true;
          } else {
            throw new RecoveryInProgressException(
                op.getExceptionMessage(src, holder, clientMachine,
                    "lease recovery is in progress. Try again later."));
          }
{code}
-  asFile() won't return null so that we can change the if-statement in 
recoverLeaseInternal to:
{code}
    INodeFile file = iip.getLastINode().asFile();
    if (!file.isUnderConstruction()) {
      return true;
    } else {
      ...
    }
{code}
Notice that we don't need "return false" at the end.

>  Lease recovery returns false , eventhough recovery happens.
> ------------------------------------------------------------
>
>                 Key: HDFS-8576
>                 URL: https://issues.apache.org/jira/browse/HDFS-8576
>             Project: Hadoop HDFS
>          Issue Type: Bug
>            Reporter: J.Andreina
>            Assignee: J.Andreina
>         Attachments: HDFS-8576.1.patch
>
>
> FSNamesystem#recoverLease , returns false eventhough lease recover happens. 
> Hence only on second retry for recovering lease on a file ,returns success 
> after checking if the file is not underconstruction.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to