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

Jonathan Hsieh commented on HBASE-6516:
---------------------------------------

The test is really helpful for understanding the ramifications of this.  

I don't think we want hbck to bail out if .tableinfo file is missing -- it 
shouldreport it as error and be allow to continue and finish without an 
exception so we can report all the errors at the end.  I looked at HBASE-5631, 
which is closely related, and I don't see a change to it changes there.

Hm.. it wasn't clear from reading the code that we expected the IOException.  
(It ends up being a TableInfoMissingException right?)
{code}
+      fs.rename(tableinfo, new Path("/.tableinfo"));
+      
+      doFsck(conf, false); 
/// ADD: fail("We expect an IOException");
+    } catch (IOException ioe) {
+      assertNotNull("No IOException found while .tableinfo missing", ioe);
+    } finally {
+      fs.rename(new Path("/.tableinfo"), tableinfo);
+      deleteTable(table);
{code}


----

nits (most of these I'd fix on commit): 

new files (TableInfoMissingException) require an apache license at the top.

Minor spacing nit:
{code}
+                HConstants.ROOT_TABLE_NAME) ==0
{code}

Is capitalization of 'NO' intentional? also minor spacing nit.
{code}
-    if (status == null) return null;
+    if (status == null) throw new TableInfoMissingException("NO .tableinfo 
file under " +tableDir.toUri());
{code}

Don't think this change is necessary
{code}
-  @Test public void testReadingHTDFromFS() throws IOException {
+  @Test public void testReadingHTDFromFS() throws IOException, 
NullPointerException{
     final String name = "testReadingHTDFromFS";
{code}

                
> hbck cannot detect any IOException while ".tableinfo" file is missing
> ---------------------------------------------------------------------
>
>                 Key: HBASE-6516
>                 URL: https://issues.apache.org/jira/browse/HBASE-6516
>             Project: HBase
>          Issue Type: Bug
>          Components: hbck
>    Affects Versions: 0.94.0, 0.96.0
>            Reporter: Jie Huang
>            Assignee: Jie Huang
>         Attachments: hbase-6516.patch, hbase-6516-v2.patch, 
> hbase-6516-v3.patch
>
>
> HBaseFsck checks those missing .tableinfo files in loadHdfsRegionInfos() 
> function. However, no IoException will be catched while .tableinfo is 
> missing, since "FSTableDescriptors.getTableDescriptor" doesn't throw any 
> IoException.

--
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