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

Jing Zhao commented on HDFS-5504:
---------------------------------

The patch looks good to me. One minor is that removePathAndBlocks already holds 
the FSNS write lock, and with the patch we will acquire the FSNS write lock 
again inside removePathAndBlocks when calling removeBlocks. Can we avoid the 
double locking here and still reuse the code? Maybe we can define new methods 
just to reuse the following code:
{code}
        for (int i = 0; i < BLOCK_DELETION_INCREMENT && iter.hasNext(); i++) {
          Block b = iter.next();
          if (trackBlockCounts) {
            BlockInfo bi = getStoredBlock(b);
            if (bi.isComplete()) {
              numRemovedComplete++;
              if (bi.numNodes() >= blockManager.minReplication) {
                numRemovedSafe++;
              }
            }
          }
          blockManager.removeBlock(b);
        }
{code}

> In HA mode, OP_DELETE_SNAPSHOT is not decrementing the safemode threshold, 
> leads to NN safemode.
> ------------------------------------------------------------------------------------------------
>
>                 Key: HDFS-5504
>                 URL: https://issues.apache.org/jira/browse/HDFS-5504
>             Project: Hadoop HDFS
>          Issue Type: Bug
>          Components: snapshots
>    Affects Versions: 3.0.0, 2.2.0
>            Reporter: Vinay
>            Assignee: Vinay
>         Attachments: HDFS-5504.patch
>
>
> 1. HA installation, standby NN is down.
> 2. delete snapshot is called and it has deleted the blocks from blocksmap and 
> all datanodes. log sync also happened.
> 3. before next log roll NN crashed
> 4. When the namenode restartes then it will fsimage and finalized edits from 
> shared storage and set the safemode threshold. which includes blocks from 
> deleted snapshot also. (because this edits is not yet read as namenode is 
> restarted before the last edits segment is not finalized)
> 5. When it becomes active, it finalizes the edits and read the delete 
> snapshot edits_op. but at this time, it was not reducing the safemode count. 
> and it will continuing in safemode.
> 6. On next restart, as the edits is already finalized, on startup only it 
> will read and set the safemode threshold correctly.
> But one more restart will bring NN out of safemode.



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

Reply via email to