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

Jean-Daniel Cryans updated HBASE-2515:
--------------------------------------

    Attachment: HBASE-2515.patch

Ugly hack that works. In CompactSplitThread.split I replace the serveraddress 
and startcode with empty byte arrays (since we can't delete in a Put).

This is now what I get when disabling after fresh splits:
{code}
2010-05-05 11:17:44,827 INFO org.apache.hadoop.hbase.master.ServerManager: 
Processing MSG_REPORT_SPLIT_INCLUDES_DAUGHTERS: 
TestTable,0000515726,1273083450063:
 Daughters; TestTable,0000515726,1273083461755, 
TestTable,0000782411,1273083461755 from 10.10.1.177,60020,1273083301200; 1 of 1
...
2010-05-05 11:17:52,260 INFO org.apache.hadoop.hbase.master.ServerManager: 
Processing MSG_REPORT_SPLIT_INCLUDES_DAUGHTERS: TestTable,,1273083450063: 
Daughters; 
TestTable,,1273083471668, TestTable,0000256008,1273083471668 from 
10.10.1.177,60020,1273083301200; 1 of 1
...

<<calling disable>>

2010-05-05 11:18:00,366 DEBUG org.apache.hadoop.hbase.master.ChangeTableState: 
Processing unserved regions
2010-05-05 11:18:00,367 DEBUG org.apache.hadoop.hbase.master.ChangeTableState: 
Skipping region REGION => {NAME => 'TestTable,,1273083425170', STARTKEY => '', 
ENDKEY =>
 '', ENCODED => 334691522, OFFLINE => true, SPLIT => true, ... because it is 
offline and split
2010-05-05 11:18:00,367 DEBUG org.apache.hadoop.hbase.master.ChangeTableState: 
Skipping region REGION => {NAME => 'TestTable,,1273083450063', STARTKEY => '', 
ENDKEY => 
'0000515726', ENCODED => 572799610, OFFLINE => true, SPLIT => true, ... because 
it is offline and split
2010-05-05 11:18:00,367 DEBUG org.apache.hadoop.hbase.master.ChangeTableState: 
Skipping region REGION => {NAME => 'TestTable,0000515726,1273083450063', 
STARTKEY => 
'0000515726', ENDKEY => '', ENCODED => 1192166465, OFFLINE => true, SPLIT => 
true, ...because it is offline and
 split
2010-05-05 11:18:00,367 DEBUG org.apache.hadoop.hbase.master.ChangeTableState: 
Processing regions currently being served
2010-05-05 11:18:00,369 DEBUG org.apache.hadoop.hbase.master.ChangeTableState: 
Adding region TestTable,,1273083471668 to setClosing list
2010-05-05 11:18:00,370 DEBUG org.apache.hadoop.hbase.master.ChangeTableState: 
Adding region TestTable,0000782411,1273083461755 to setClosing list
2010-05-05 11:18:00,371 DEBUG org.apache.hadoop.hbase.master.ChangeTableState: 
Adding region TestTable,0000256008,1273083471668 to setClosing list
2010-05-05 11:18:00,379 DEBUG org.apache.hadoop.hbase.master.ChangeTableState: 
Adding region TestTable,0000515726,1273083461755 to setClosing list
{code}

So in this trace only the offline and split regions were skipped, and they 
weren't put on the setClosing list which would have got them in the 
regionsInTransition list.

Not ready for commit, Stack said he wanted to try his new fancy test framework 
to unit test this.

> ChangeTableState considers split&&offline regions as being served
> -----------------------------------------------------------------
>
>                 Key: HBASE-2515
>                 URL: https://issues.apache.org/jira/browse/HBASE-2515
>             Project: Hadoop HBase
>          Issue Type: Bug
>            Reporter: Jean-Daniel Cryans
>            Assignee: Jean-Daniel Cryans
>            Priority: Critical
>             Fix For: 0.20.5, 0.21.0
>
>         Attachments: HBASE-2515.patch
>
>
> A region is considered as being serverd and unserved at the same time in the 
> ChangeTableState (and TableOperation) class. This translates to logs like 
> this:
> {code}
> 2010-05-04 17:26:01,073 INFO org.apache.hadoop.hbase.master.ServerManager: 
> Processing MSG_REPORT_SPLIT_INCLUDES_DAUGHTERS: 
> TestTable,0000518811,1273019008135: Daughters; 
> TestTable,0000518811,1273019159867, TestTable,0000584541,1273019159867 from 
> 10.10.1.177,60020,1273018776034; 1 of 1
> <<disable is called>>
> 2010-05-04 17:26:25,893 DEBUG 
> org.apache.hadoop.hbase.master.ChangeTableState: Skipping region REGION => 
> {NAME => 'TestTable,0000518811,1273019008135', STARTKEY => '0000518811', 
> ENDKEY => '0000650817', 
> ENCODED => 143183187, OFFLINE => true, SPLIT => true, TABLE => {{NAME => 
> 'TestTable', FAMILIES => [{NAME => 'info', VERSIONS => '3', COMPRESSION => 
> 'NONE', TTL => '2147483647', BLOCKSIZE => '65536', IN_MEMORY => 
> 'false', BLOCKCACHE => 'true'}]}} because it is offline and split
> 2010-05-04 17:26:25,902 DEBUG 
> org.apache.hadoop.hbase.master.ChangeTableState: Adding region 
> TestTable,0000518811,1273019008135 to setClosing list
> 2010-05-04 17:26:27,008 DEBUG 
> org.apache.hadoop.hbase.master.ChangeTableState: Skipping region REGION => 
> {NAME => 'TestTable,0000518811,1273019008135', STARTKEY => '0000518811', 
> ENDKEY => '0000650817', 
> ENCODED => 143183187, OFFLINE => true, SPLIT => true, TABLE => {{NAME => 
> 'TestTable', FAMILIES => [{NAME => 'info', VERSIONS => '3', COMPRESSION => 
> 'NONE', TTL => '2147483647', BLOCKSIZE => '65536', IN_MEMORY =>
>  'false', BLOCKCACHE => 'true'}]}} because it is offline and split
> 2010-05-04 17:26:27,018 DEBUG 
> org.apache.hadoop.hbase.master.ChangeTableState: Adding region 
> TestTable,0000518811,1273019008135 to setClosing list
> {code}
> The region gets stuck in transition! More details in a comment to come.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to