You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Matteo Bertozzi (Resolved) (JIRA)" <ji...@apache.org> on 2012/04/01 22:46:28 UTC

[jira] [Resolved] (HBASE-5681) Split Region crash if region is still offline after a previous split

     [ https://issues.apache.org/jira/browse/HBASE-5681?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Matteo Bertozzi resolved HBASE-5681.
------------------------------------

    Resolution: Duplicate

Duplicate of HBASE-5665, trying to split the parent region, hasReferences() is true and split shouldn't be done.
                
> Split Region crash if region is still offline after a previous split
> --------------------------------------------------------------------
>
>                 Key: HBASE-5681
>                 URL: https://issues.apache.org/jira/browse/HBASE-5681
>             Project: HBase
>          Issue Type: Bug
>          Components: regionserver, zookeeper
>    Affects Versions: 0.92.1, 0.96.0, 0.94.1
>            Reporter: Matteo Bertozzi
>            Assignee: Matteo Bertozzi
>            Priority: Minor
>         Attachments: logs0-HBASE-5681.tar.bz2, logs1-HBASE-5681.tar.bz2
>
>
> I've a script that starts hbase and a couple of region servers in distributed mode (hbase.cluster.distributed = true) due to HBASE-5666 I need a sleep to ensure that rs are up.
> {code}
> $HBASE_HOME/bin/start-hbase.sh
> sleep 5 # bug HBASE-5666 rs doesn't retry if znode is not available.
> $HBASE_HOME/bin/local-regionservers.sh start 1 2 3
> {code}
> Once hbase is started I run an hbase shell script file (see below)
> everything is fine till last split operation.
> {code}
> # $HBASE_HOME/bin/hbase shell test.hbase
> # test.hbase
> create 'bugtb-t1', 'tcf11', 'tcf12'
> create 'bugtb-t2', 'tcf11', 'tcf12'
> put 'bugtb-t1', '10', 'tcf11:c1', 'a'
> put 'bugtb-t1', '15', 'tcf11:c2', 'b'
> put 'bugtb-t1', '20', 'tcf11:c1', 'c'
> put 'bugtb-t1', '30', 'tcf11:c2', 'd'
> put 'bugtb-t1', '35', 'tcf11:c1', 'e'
> put 'bugtb-t1', '40', 'tcf11:c2', 'f'
> put 'bugtb-t2', '10', 'tcf11:c1', 'a'
> put 'bugtb-t2', '15', 'tcf11:c2', 'b'
> put 'bugtb-t2', '20', 'tcf11:c1', 'c'
> put 'bugtb-t2', '30', 'tcf11:c2', 'd'
> put 'bugtb-t2', '35', 'tcf11:c1', 'e'
> put 'bugtb-t2', '40', 'tcf11:c2', 'f'
> split 'bugtb-t1', '20'
> split 'bugtb-t2', '20'
> split 'bugtb-t1', '40'
> {code}
> During the last split the region is still offline, and you get an exception....
> (If you sleep a bit before executing the last split, everything is fine)
> {code}
> ERROR: org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.hbase.NotServingRegionException: Region is not online: bugtb-t1,,1333134892936.4e14c2cf4293156d5b099dc3d5c44890.
> 	at org.apache.hadoop.hbase.regionserver.HRegionServer.getRegion(HRegionServer.java:3123)
> 	at org.apache.hadoop.hbase.regionserver.HRegionServer.splitRegion(HRegionServer.java:2926)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at org.apache.hadoop.hbase.ipc.WritableRpcEngine$Server.call(WritableRpcEngine.java:366)
> 	at org.apache.hadoop.hbase.ipc.HBaseServer$Handler.run(HBaseServer.java:1383)
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira