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

Jason Lowe commented on HDFS-5558:
----------------------------------

We might need a slight addition to the patch for branch-0.23, as 
getAdditionalBlock has a very similar structure where it can commit/complete 
the last block before checking the state of the penultimate block.  If we get 
stuck in that state for a while or client abandons the file then the 
LeaseManager could hit the same condition if a block report completes the last 
block but not the penultimate block.  In trunk/branch-2 getAdditionalBlock 
calls analyzeFileState before it tries to commit/complete the block, and that 
will throw if the penultimate block has not completed.

> LeaseManager monitor thread can crash if the last block is complete but 
> another block is not.
> ---------------------------------------------------------------------------------------------
>
>                 Key: HDFS-5558
>                 URL: https://issues.apache.org/jira/browse/HDFS-5558
>             Project: Hadoop HDFS
>          Issue Type: Bug
>    Affects Versions: 0.23.9, 2.3.0
>            Reporter: Kihwal Lee
>         Attachments: HDFS-5558.patch
>
>
> As mentioned in HDFS-5557, if a file has its last and penultimate block not 
> completed and the file is being closed, the last block may be completed but 
> the penultimate one might not. If this condition lasts long and the file is 
> abandoned, LeaseManager will try to recover the lease and the block. But 
> {{internalReleaseLease()}} will fail with invalid cast exception with this 
> kind of file.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to