You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "ramkrishna.s.vasudevan (JIRA)" <ji...@apache.org> on 2012/12/08 18:17:21 UTC

[jira] [Commented] (HBASE-7307) MetaReader.tableExists should not return false if the specified table regions has been split

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

ramkrishna.s.vasudevan commented on HBASE-7307:
-----------------------------------------------

I think this is a very good find..
Rajesh, i have a question here..
In your case tableExists() was called before the split had done the DaughterOpener part.  Which means that the META is going to have only one entry and and daughter entries are yet to be added, correct...

Nice one.. I think it should be easy to add up a testcase to this..  I think even if we find a region to be splitParent still add the region to the visitors result.. So that i have a size > 1.   
                
> MetaReader.tableExists should not return false if the specified table regions has been split
> --------------------------------------------------------------------------------------------
>
>                 Key: HBASE-7307
>                 URL: https://issues.apache.org/jira/browse/HBASE-7307
>             Project: HBase
>          Issue Type: Bug
>    Affects Versions: 0.92.3, 0.96.0, 0.94.4
>            Reporter: rajeshbabu
>            Assignee: rajeshbabu
>             Fix For: 0.92.2, 0.94.3
>
>
> If a region is split parent we are not adding it to META scan results during full scan. 
> {code}
>         if (!isInsideTable(this.current, tableNameBytes)) return false;
>         if (this.current.isSplitParent()) return true;
>         // Else call super and add this Result to the collection.
>         super.visit(r);
> {code}
> If all regions of a table has been split then result size will be zero and returning false.
> {code} 
>     fullScan(catalogTracker, visitor, getTableStartRowForMeta(tableNameBytes));
>     // If visitor has results >= 1 then table exists.
>     return visitor.getResults().size() >= 1;
> {code}
> Even table is present we are returning false which is not correct(its highly possible in case of tables with one region).

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