[ https://issues.apache.org/jira/browse/HDFS-8486?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14633828#comment-14633828 ]
Daryn Sharp commented on HDFS-8486: ----------------------------------- Public service notice: * _Every restart of a 2.6.x or 2.7.0 DN incurs a risk of unwanted block deletion_. * Apply this patch if you are running a pre-2.7.1 release. I previously attributed this as an ancient bug but it's new to 2.6. HDFS-2560 did start the scanner too early but the race caused a benign log warning. In 2.6, HDFS-6931 made an unrelated change that introduced the faulty (mass) deletion logic. > DN startup may cause severe data loss > ------------------------------------- > > Key: HDFS-8486 > URL: https://issues.apache.org/jira/browse/HDFS-8486 > Project: Hadoop HDFS > Issue Type: Bug > Components: datanode > Affects Versions: 0.23.1, 2.0.0-alpha > Reporter: Daryn Sharp > Assignee: Daryn Sharp > Priority: Blocker > Fix For: 2.7.1 > > Attachments: HDFS-8486.patch, HDFS-8486.patch > > > A race condition between block pool initialization and the directory scanner > may cause a mass deletion of blocks in multiple storages. > If block pool initialization finds a block on disk that is already in the > replica map, it deletes one of the blocks based on size, GS, etc. > Unfortunately it _always_ deletes one of the blocks even if identical, thus > the replica map _must_ be empty when the pool is initialized. > The directory scanner starts at a random time within its periodic interval > (default 6h). If the scanner starts very early it races to populate the > replica map, causing the block pool init to erroneously delete blocks. -- This message was sent by Atlassian JIRA (v6.3.4#6332)