Kihwal Lee created HDFS-7587:
--------------------------------

             Summary: Edit log corruption can happen if append fails with a 
quota violation
                 Key: HDFS-7587
                 URL: https://issues.apache.org/jira/browse/HDFS-7587
             Project: Hadoop HDFS
          Issue Type: Bug
            Reporter: Kihwal Lee
            Priority: Blocker


We have seen a standby namenode crashing due to edit log corruption. It was 
complaining that {{OP_CLOSE}} cannot be applied because the file is not 
under-construction.

When a client was trying to append to the file, the remaining space quota was 
very small. This caused a failure in {{prepareFileForWrite()}}, but after the 
inode was already converted for writing and a lease added. Since these were not 
undone when the quota violation was detected, the file was left in 
under-construction with an active lease without edit logging {{OP_ADD}}.

A subsequent {{append()}} eventually caused a lease recovery after the soft 
limit period. This resulted in {{commitBlockSynchronization()}}, which closed 
the file with {{OP_CLOSE}} being logged.  Since there was no corresponding 
{{OP_ADD}}, edit replaying could not apply this.



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

Reply via email to