You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Huaxiang Sun (Jira)" <ji...@apache.org> on 2020/06/09 05:57:00 UTC

[jira] [Resolved] (HBASE-23202) ExportSnapshot (import) will fail if copying files to root directory takes longer than cleaner TTL

     [ https://issues.apache.org/jira/browse/HBASE-23202?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Huaxiang Sun resolved HBASE-23202.
----------------------------------
    Fix Version/s: 3.0.0-alpha-1
       Resolution: Fixed

I updated the patch based on review comments (addressed the missed case when snapshot working dir is different from the hbase root dir, added a new test case for the described case), pushed the patch to branch-2.3, branch-2 and master, resolving it.

> 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: 3.0.0-alpha-1, 1.5.0, 2.2.1, 1.4.11, 2.1.7
>            Reporter: Zach York
>            Assignee: Guangxu Cheng
>            Priority: Major
>             Fix For: 3.0.0-alpha-1, 2.3.0
>
>
> 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)