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

Guangxu Cheng commented on HBASE-23202:
---------------------------------------

{code:java}
#SnapshotFileCache#getUnreferencedFiles
if (snapshotsInProgress == null) {      
  snapshotsInProgress = getSnapshotsInProgress();       
}       
if (snapshotsInProgress.contains(fileName)) {   
  continue;     
}
{code}
Yesterday, I also encountered a similar problem, I think that this issue is 
caused by -HBASE-21511 which- remove in-progress snapshot check in 
SnapshotFileCache#getUnreferencedFiles. The removed code is as above.

> 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
>            Priority: Major
>
> 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