[
https://issues.apache.org/jira/browse/HBASE-6707?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13469645#comment-13469645
]
Ted Yu commented on HBASE-6707:
-------------------------------
I think this hunk is not needed:
{code}
@@ -50,16 +50,14 @@ public class LongTermArchivingHFileCleaner extends
BaseHFileCleanerDelegate {
@Override
public boolean isFileDeletable(Path file) {
try {
+ // if its a directory, then it can be deleted
+ if (!fs.isFile(file)) return true;
+ // check to see if
FileStatus[] deleteStatus = FSUtils.listStatus(this.fs, file, null);
// if the file doesn't exist, then it can be deleted (but should never
// happen since deleted files shouldn't get passed in)
if (deleteStatus == null) return true;
- // if its a directory with stuff in it, don't delete
- if (deleteStatus.length > 1) return false;
-
- // if its an empty directory, we can definitely delete
- if (deleteStatus[0].isDir()) return true;
// otherwise, we need to check the file's table and see its being
archived
Path family = file.getParent();
{code}
I placed breakpoint on the following line in the debugger:
{code}
+ if (!fs.isFile(file)) return true;
{code}
file turned out to be empty every time when it was a directory.
Without the above hunk, test still passed in a loop (on jdk 1.7).
> TEST
> org.apache.hadoop.hbase.backup.example.TestZooKeeperTableArchiveClient.testMultipleTables
> flaps
> ----------------------------------------------------------------------------------------------------
>
> Key: HBASE-6707
> URL: https://issues.apache.org/jira/browse/HBASE-6707
> Project: HBase
> Issue Type: Bug
> Components: test
> Reporter: Sameer Vaishampayan
> Assignee: Jesse Yates
> Priority: Critical
> Fix For: 0.96.0
>
> Attachments: hbase-6707-v0.patch, hbase-6707-v1.patch,
> hbase-6707-v2.patch, hbase-6707-v3.patch, hbase-6707-v4-addendum.patch,
> hbase-6707-v4.patch
>
>
> https://builds.apache.org/job/HBase-TRUNK/3293/
> Error Message
> Archived HFiles
> (hdfs://localhost:59986/user/jenkins/hbase/.archive/otherTable/01ced3b55d7220a9c460273a4a57b198/fam)
> should have gotten deleted, but didn't, remaining
> files:[hdfs://localhost:59986/user/jenkins/hbase/.archive/otherTable/01ced3b55d7220a9c460273a4a57b198/fam/fc872572a1f5443eb55b6e2567cfeb1c]
> Stacktrace
> java.lang.AssertionError: Archived HFiles
> (hdfs://localhost:59986/user/jenkins/hbase/.archive/otherTable/01ced3b55d7220a9c460273a4a57b198/fam)
> should have gotten deleted, but didn't, remaining
> files:[hdfs://localhost:59986/user/jenkins/hbase/.archive/otherTable/01ced3b55d7220a9c460273a4a57b198/fam/fc872572a1f5443eb55b6e2567cfeb1c]
> at org.junit.Assert.fail(Assert.java:93)
> at org.junit.Assert.assertTrue(Assert.java:43)
> at org.junit.Assert.assertNull(Assert.java:551)
> at
> org.apache.hadoop.hbase.backup.example.TestZooKeeperTableArchiveClient.testMultipleTables(TestZooKeeperTableArchiveClient.java:291)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira