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

Wei-Chiu Chuang commented on HDFS-11817:
----------------------------------------

I'm trying to backport this to branch-2.7.

There are quite a few conflicts, but the biggest change compared to the 
branch-2.8 patch is
{code:java|title=BlockInfoContiguousUnderConstruction#addReplicaIfNotPresent}
void addReplicaIfNotPresent(DatanodeStorageInfo storage,
                     Block block,
                     ReplicaState rState) {
    Iterator<ReplicaUnderConstruction> it = replicas.iterator();
    while (it.hasNext()) {
{code}
because branch-2.7 does not have HDFS-8928. Without the change, replicas could 
be null and tests fails with NPE.

> A faulty node can cause a lease leak and NPE on accessing data
> --------------------------------------------------------------
>
>                 Key: HDFS-11817
>                 URL: https://issues.apache.org/jira/browse/HDFS-11817
>             Project: Hadoop HDFS
>          Issue Type: Bug
>    Affects Versions: 2.8.0
>            Reporter: Kihwal Lee
>            Assignee: Kihwal Lee
>            Priority: Critical
>             Fix For: 2.9.0, 3.0.0-alpha4, 2.8.2
>
>         Attachments: HDFS-11817.branch-2.7.001.patch, 
> HDFS-11817.branch-2.patch, HDFS-11817.v2.branch-2.8.patch, 
> HDFS-11817.v2.branch-2.patch, HDFS-11817.v2.trunk.patch, 
> hdfs-11817_supplement.txt
>
>
> When the namenode performs a lease recovery for a failed write, the 
> {{commitBlockSynchronization()}} will fail, if none of the new target has 
> sent a received-IBR.  At this point, the data is inaccessible, as the 
> namenode will throw a {{NullPointerException}} upon {{getBlockLocations()}}.
> The lease recovery will be retried in about an hour by the namenode. If the 
> nodes are faulty (usually when there is only one new target), they may not 
> block report until this point. If this happens, lease recovery throws an 
> {{AlreadyBeingCreatedException}}, which causes LeaseManager to simply remove 
> the lease without  finalizing the inode.  
> This results in an inconsistent lease state. The inode stays 
> under-construction, but no more lease recovery is attempted. A manual lease 
> recovery is also not allowed. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org

Reply via email to