Ted Yu created HBASE-20966:
------------------------------

             Summary: RestoreTool#getTableInfoPath should look for completed 
snapshot only
                 Key: HBASE-20966
                 URL: https://issues.apache.org/jira/browse/HBASE-20966
             Project: HBase
          Issue Type: Bug
            Reporter: Ted Yu
            Assignee: Ted Yu


[~gubjanos] reported seeing the following error when running backup / restore 
test on Azure:
{code}
2018-07-25 17:03:56,661|INFO|MainThread|machine.py:167 - 
run()||GUID=e7de7672-ebfd-402d-8f1f-68e7e8444cb1|org.apache.hadoop.hbase.snapshot.CorruptedSnapshotException:
 Couldn't read snapshot info 
from:wasb://hbase3-m30wub1711kond-115...@humbtesting8wua.blob.core.windows.net/user/hbase/backup_loc/backup_1532538064246/default/table_fnfawii1za/.hbase-snapshot/.tmp/.
snapshotinfo
2018-07-25 17:03:56,661|INFO|MainThread|machine.py:167 - 
run()||GUID=e7de7672-ebfd-402d-8f1f-68e7e8444cb1|at 
org.apache.hadoop.hbase.snapshot.SnapshotDescriptionUtils.readSnapshotInfo(SnapshotDescriptionUtils.java:328)
2018-07-25 17:03:56,661|INFO|MainThread|machine.py:167 - 
run()||GUID=e7de7672-ebfd-402d-8f1f-68e7e8444cb1|at 
org.apache.hadoop.hbase.backup.util.RestoreServerUtil.getTableDesc(RestoreServerUtil.java:237)
2018-07-25 17:03:56,662|INFO|MainThread|machine.py:167 - 
run()||GUID=e7de7672-ebfd-402d-8f1f-68e7e8444cb1|at 
org.apache.hadoop.hbase.backup.util.RestoreServerUtil.restoreTableAndCreate(RestoreServerUtil.java:351)
2018-07-25 17:03:56,662|INFO|MainThread|machine.py:167 - 
run()||GUID=e7de7672-ebfd-402d-8f1f-68e7e8444cb1|at 
org.apache.hadoop.hbase.backup.util.RestoreServerUtil.fullRestoreTable(RestoreServerUtil.java:186)
{code}
Here is related code in master branch:
{code}
  Path getTableInfoPath(TableName tableName) throws IOException {
    Path tableSnapShotPath = getTableSnapshotPath(backupRootPath, tableName, 
backupId);
    Path tableInfoPath = null;

    // can't build the path directly as the timestamp values are different
    FileStatus[] snapshots = fs.listStatus(tableSnapShotPath);
{code}
In the above code, we don't exclude incomplete snapshot, leading to exception 
later when reading snapshot info.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to