Zach York created HBASE-23202:
---------------------------------

             Summary: ExportSnapshot (import) will fail if copying files to 
root directory takes longer than cleaner TTL
                 Key: HBASE-23202
                 URL: https://issues.apache.org/jira/browse/HBASE-23202
             Project: HBase
          Issue Type: Bug
          Components: snapshots
    Affects Versions: 1.5.0, 1.4.11
            Reporter: Zach York


HBASE-17330 removed the checking of the snapshot .tmp directory when 
determining which files are candidates for deletes. It appears that in the 
latest branches, this isn't an issue for taking a snapshot as it checks whether 
a snapshot is in progress via the SnapshotManager.

However, when using the ExportSnapshot tool to import a snapshot into a 
cluster, it will first copy the snapshot manifest into 
/.snapshot/.tmp/<snapshot> [1], copies the files, and then renames the snapshot 
manifest to the final snapshot directory. If the copyFiles job takes longer 
than the cleaner TTL, the ExportSnapshot job will fail because HFiles will get 
deleted before the snapshot is committed to the final directory. 

The ExportSnapshot tool already has a functionality to skipTmp and write the 
manifest directly to the final location. However, this has unintended 
consequences such as the snapshot appearing to the user before it is usable. So 
it looks like we will have to bring back the tmp directory check to avoid this 
situation.

[1] 
https://github.com/apache/hbase/blob/master/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/snapshot/ExportSnapshot.java#L1029



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to