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

HemaKumar commented on HBASE-27404:
-----------------------------------

 

>From SnapshotFileCache Class, this will help to skip cleaner if any snapshot 
>is being taken.  
{code:java}
if (snapshotManager != null && snapshotManager.isTakingAnySnapshot()) {
  LOG.warn("Not checking unreferenced files since snapshot is running, it will 
" +
    "skip to clean the HFiles this time"); 
return unReferencedFiles;
}{code}
 

can we add a check here to skip SnapshotHfileCleaner if the snapshot copy is 
running?

> Long running ExportSnapshot fails with Can't find hfile Exception.
> ------------------------------------------------------------------
>
>                 Key: HBASE-27404
>                 URL: https://issues.apache.org/jira/browse/HBASE-27404
>             Project: HBase
>          Issue Type: Bug
>          Components: snapshots
>            Reporter: HemaKumar
>            Priority: Minor
>
> ExportSnapshot Jobs running for more than destination cluster 
> hbase.master.hfilecleaner.ttl value, are filing with {_}Can't find hfile: 
> <hile> in the real or archive folders{_}. Copied HFiles in archive folder is 
> getting deleted at the Destination cluster by SnapshotHFileCleaner cleaner.
>  
>  # Export snapshot moves archived hfiles files to destination archved folders.
>  # In progress ExportSnapshot manifest will be there in 
> /hbase/.hbase-snapshot/.tmp till it is completed.
>  # in SnapshotHFileCleaner flow, where it is ignoring 
> /hbase/.hbase-snapshot/.tmp directory to find the snapshot reference files,
> {code:java}
>  
> private void refreshCache() throws IOException {
>   // just list the snapshot directory directly, do not check the modification 
> time for the root
>   // snapshot directory, as some file system implementations do not modify 
> the parent directory's
>   // modTime when there are new sub items, for example, S3.
>   FileStatus[] snapshotDirs = FSUtils.listStatus(fs, snapshotDir,
>     p -> 
> !p.getName().equals(SnapshotDescriptionUtils.SNAPSHOT_TMP_DIR_NAME)); {code}
>  # As in progress snapshot reference is missed by SnapshotHFileCleaner. 
> TimeToLiveHFileCleaner marks the HFiles older(coped before 
> hbase.master.hfilecleaner.ttl) than hbase.master.hfilecleaner.ttl to delete 
> from in progress ExportSnapshots dir.
>  # This is causing ExportSnapshot to fail at the verification stage.
>  
> Workaround:
> increase hbase.master.hfilecleaner.ttl value to more than the Snapshot 
> ExportSnapshot job run time in the destination cluster.
>  
> I think this issue needs to be fixed in SnapshotHFileCleaner flow so that 
> long-running ExportSnapshot jobs can succeed.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to