diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/backup/util/BackupClientUtil.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/backup/util/BackupClientUtil.java index f6cda23..c416a0f 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/backup/util/BackupClientUtil.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/backup/util/BackupClientUtil.java @@ -237,7 +237,7 @@ public final class BackupClientUtil { LOG.debug(tableDir.toString() + " is empty, remove it."); } } - outputFs.delete(new Path(targetDir), true); + outputFs.delete(new Path(targetDir, backupContext.getBackupId()), true); } catch (IOException e1) { LOG.error("Cleaning up backup data of " + backupContext.getBackupId() + " at " + backupContext.getTargetRootDir() + " failed due to " + e1.getMessage() + "."); diff --git a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupDelete.java b/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupDelete.java index 192d8e8..d3c451d 100644 --- a/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupDelete.java +++ b/hbase-server/src/test/java/org/apache/hadoop/hbase/backup/TestBackupDelete.java @@ -26,7 +26,11 @@ import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.fs.Path; +import org.apache.hadoop.hbase.HBaseTestingUtility; import org.apache.hadoop.hbase.TableName; +import org.apache.hadoop.hbase.backup.impl.BackupSystemTable; import org.apache.hadoop.hbase.testclassification.LargeTests; import org.apache.hadoop.util.ToolRunner; import org.junit.Test; @@ -52,8 +56,17 @@ public class TestBackupDelete extends TestBackupBase { assertTrue(checkSucceeded(backupId)); LOG.info("backup complete"); String[] backupIds = new String[] { backupId }; + BackupSystemTable table = new BackupSystemTable(TEST_UTIL.getConnection()); + BackupInfo info = table.readBackupInfo(backupId); + Path path = new Path(info.getTargetRootDir(), backupId); + FileSystem fs = FileSystem.get(path.toUri(), conf1); + assertTrue(fs.exists(path)); int deleted = getBackupAdmin().deleteBackups(backupIds); + + assertTrue(!fs.exists(path)); + assertTrue(fs.exists(new Path(info.getTargetRootDir()))); assertTrue(1 == deleted); + table.close(); LOG.info("delete_backup"); }