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

Jesse Yates commented on HBASE-6707:
------------------------------------

bq. Why the addition of 3 above ?

So it checks each of the directories on the way down - tablename/region/family 
- hence the plus three. 

The way CleanerChore works is that it looks at the main directory, and then if 
it has files under it, attempts to see if those files are deleteable. If they 
aren't deletable, it skips checking the directory and continues on to the next 
directory to check. If all the files are deletable, then if checks to see if 
the directory is deletable.

bq. The above change deviates from original assumption. Please explain why a 
directory can be deleted regardless of whether it has files under it.

Therefore, we can always consider directories deletable because there is 
nothing special about a directory, but only the files under the directory. 
Perhaps that was a flaw in the design, but we should file another ticket to 
change that behavior such that we only check for files and delete directories 
when there are no files for that directory.

Further note, for the original quote, that we need only have +3 for the 
non-archived table's directories, but not an extra +3 (which would make a total 
of +6) for the archived table because we don't attempt to delete the directory 
containing hfiles that are retained.
                
> 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

Reply via email to