[jira] [Comment Edited] (HBASE-20566) Creating a system table after enabling rsgroup feature puts in region into RIT

2018-05-13 Thread Nihal Jain (JIRA)

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

Nihal Jain edited comment on HBASE-20566 at 5/13/18 4:30 PM:
-

I have moved quota enabling to {{setUp()}}. Now, we don't need to re-start 
hbase at all, as it will be unnecessary to disable quota at the end of 
{{testRSGroupsWithHBaseQuota()}}.

Please review the changes.


was (Author: nihaljain.cs):
I have moved quota enabling to {{setUp()}}. Now, we don't need to re-start 
hbase at all, as it does is unnecessary to disable quota at the end of 
{{testRSGroupsWithHBaseQuota()}}.

Please review the changes.

> Creating a system table after enabling rsgroup feature puts in region into RIT
> --
>
> Key: HBASE-20566
> URL: https://issues.apache.org/jira/browse/HBASE-20566
> Project: HBase
>  Issue Type: Bug
>  Components: master
>Reporter: Biju Nair
>Assignee: Nihal Jain
>Priority: Major
> Fix For: 3.0.0
>
> Attachments: HBASE-20566.master.001.patch, 
> HBASE-20566.master.002.patch
>
>
> *Steps to reproduce*
>  - Enable {{rsgroup}} feature
>  - Enable {{quota}} feature which created {{hbase::quota}} table
>  - quota table region will be marked as RIT since the {{rsgroup}} for the 
> table is not known
> {noformat}
> 2018-05-10 14:33:32,392 INFO  [ProcedureExecutorThread-0] 
> zookeeper.ZKTableStateManager: Moving table hbase:quota state from null to 
> ENABLING
> 2018-05-10 14:33:32,397 WARN  [ProcedureExecutorThread-0] 
> rsgroup.RSGroupBasedLoadBalancer: Group for table hbase:quota is null
> 2018-05-10 14:33:32,398 WARN  [ProcedureExecutorThread-0] 
> master.RegionStates: Failed to open/close 89490cd5e00ea8948af413a1df65091a on 
> null, set to FAILED_OPEN
> 2018-05-10 14:33:32,398 INFO  [ProcedureExecutorThread-0] 
> master.RegionStates: Transition {89490cd5e00ea8948af413a1df65091a 
> state=OFFLINE, ts=1525977212397, server=null} to 
> {89490cd5e00ea8948af413a1df65091a state=FAILED_OPEN, ts=1525977212398, 
> server=null}
> 2018-05-10 14:33:32,398 INFO  [ProcedureExecutorThread-0] 
> zookeeper.ZKTableStateManager: Moving table hbase:quota state from ENABLING 
> to ENABLED
> {noformat}
>  - Reason for this issue: Issue
>  - [system table 
> creation|https://github.com/apache/hbase/blob/061a31fad1654d9ded96d118e04c14860413fa25/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java#L1793]
>  doesn't move the table to the appropriate rs group to which system namespace 
> is assigned to. Need to execute logic similar to what is done in the 
> RSGroupAdminEndpoint for [post table creation|#L377] for user table creation.
> *Work Around*
>   - Assigning the system table to ``default`` rsgroup (or to the rsgroup to 
> which the system namespace has been assigned).
>   - Manually assigning the region in RIT from the system table
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Comment Edited] (HBASE-20566) Creating a system table after enabling rsgroup feature puts in region into RIT

2018-05-13 Thread Nihal Jain (JIRA)

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

Nihal Jain edited comment on HBASE-20566 at 5/13/18 9:06 AM:
-

{quote}I think the enabling of quota can be done in setUp() method so that we 
don't need to restart the cluster twice.
{quote}
I had written the test case in a way that it does not hinder the result of any 
other test cases in the given class. Enabling quota in the set up can be done, 
but say we run the test class without the fix (i.e. if quota table creation 
gets stuck), then none of the test cases would pass as the bug for some reasons 
causes dropping of tables to fail and ultimately rolls back. Hence will cause 
all test cases to fail.
{code:java}
2018-05-13 14:16:02,171 INFO  
[RpcServer.default.FPBQ.Fifo.handler=29,queue=2,port=16000] master.HMaster: 
Client=root1//127.0.0.1 delete test
2018-05-13 14:16:02,287 INFO  
[RpcServer.default.FPBQ.Fifo.handler=29,queue=2,port=16000] 
rsgroup.RSGroupAdminServer: Moving table test to RSGroup null
2018-05-13 14:16:02,292 INFO  [PEWorker-16] hbase.MetaTableAccessor: Deleted 1 
regions from META
2018-05-13 14:16:02,307 INFO  [PEWorker-16] hbase.MetaTableAccessor: Deleted 1 
regions from META
2018-05-13 14:16:02,309 INFO  [PEWorker-16] hbase.MetaTableAccessor: Deleted 
table test state from META
2018-05-13 14:16:02,313 INFO  [PEWorker-16] procedure2.ProcedureExecutor: 
Finished pid=20, state=SUCCESS; DeleteTableProcedure table=test in 140msec
2018-05-13 14:16:07,045 WARN  [ProcExecTimeout] assignment.AssignmentManager: 
STUCK Region-In-Transition rit=OFFLINE, location=localhost,1,1, 
table=hbase:quota, region=2b9f9ceca3cb8a77ae2220b053c1c4e7
2018-05-13 14:16:12,045 WARN  [ProcExecTimeout] assignment.AssignmentManager: 
STUCK Region-In-Transition rit=OFFLINE, location=localhost,1,1, 
table=hbase:quota, region=2b9f9ceca3cb8a77ae2220b053c1c4e7
2018-05-13 14:16:17,046 WARN  [ProcExecTimeout] assignment.AssignmentManager: 
STUCK Region-In-Transition rit=OFFLINE, location=localhost,1,1, 
table=hbase:quota, region=2b9f9ceca3cb8a77ae2220b053c1c4e7
2018-05-13 14:16:22,046 WARN  [ProcExecTimeout] assignment.AssignmentManager: 
STUCK Region-In-Transition rit=OFFLINE, location=localhost,1,1, 
table=hbase:quota, region=2b9f9ceca3cb8a77ae2220b053c1c4e7
2018-05-13 14:16:27,046 WARN  [ProcExecTimeout] assignment.AssignmentManager: 
STUCK Region-In-Transition rit=OFFLINE, location=localhost,1,1, 
table=hbase:quota, region=2b9f9ceca3cb8a77ae2220b053c1c4e7
2018-05-13 14:16:32,046 WARN  [ProcExecTimeout] assignment.AssignmentManager: 
STUCK Region-In-Transition rit=OFFLINE, location=localhost,1,1, 
table=hbase:quota, region=2b9f9ceca3cb8a77ae2220b053c1c4e7
2018-05-13 14:16:37,047 WARN  [ProcExecTimeout] assignment.AssignmentManager: 
STUCK Region-In-Transition rit=OFFLINE, location=localhost,1,1, 
table=hbase:quota, region=2b9f9ceca3cb8a77ae2220b053c1c4e7
2018-05-13 14:16:42,047 WARN  [ProcExecTimeout] assignment.AssignmentManager: 
STUCK Region-In-Transition rit=OFFLINE, location=localhost,1,1, 
table=hbase:quota, region=2b9f9ceca3cb8a77ae2220b053c1c4e7
2018-05-13 14:16:47,048 WARN  [ProcExecTimeout] assignment.AssignmentManager: 
STUCK Region-In-Transition rit=OFFLINE, location=localhost,1,1, 
table=hbase:quota, region=2b9f9ceca3cb8a77ae2220b053c1c4e7
2018-05-13 14:16:52,049 WARN  [ProcExecTimeout] assignment.AssignmentManager: 
STUCK Region-In-Transition rit=OFFLINE, location=localhost,1,1, 
table=hbase:quota, region=2b9f9ceca3cb8a77ae2220b053c1c4e7
2018-05-13 14:16:57,049 WARN  [ProcExecTimeout] assignment.AssignmentManager: 
STUCK Region-In-Transition rit=OFFLINE, location=localhost,1,1, 
table=hbase:quota, region=2b9f9ceca3cb8a77ae2220b053c1c4e7
2018-05-13 14:17:02,050 WARN  [ProcExecTimeout] assignment.AssignmentManager: 
STUCK Region-In-Transition rit=OFFLINE, location=localhost,1,1, 
table=hbase:quota, region=2b9f9ceca3cb8a77ae2220b053c1c4e7
2018-05-13 14:17:02,282 INFO  
[RpcServer.default.FPBQ.Fifo.handler=28,queue=1,port=16000] master.HMaster: 
Client=root1//127.0.0.1 delete test
2018-05-13 14:17:02,411 INFO  [PEWorker-3] procedure2.ProcedureExecutor: Rolled 
back pid=21, state=ROLLEDBACK, 
exception=org.apache.hadoop.hbase.TableNotFoundException via 
master-delete-table:org.apache.hadoop.hbase.TableNotFoundException: test; 
DeleteTableProcedure table=test exec-time=128msec
{code}

Since with the fix the test case will pass, we can surely move enabling of 
quota to setUp(), but am not sure about negative scenarios. What do you suggest?


was (Author: nihaljain.cs):
{quote}I think the enabling of quota can be done in setUp() method so that we 
don't need to restart the cluster twice.
{quote}
I had written the test case in a way that it does not hinder the result of any 
other test cases in the given class. Enabling quota in the set up can be done, 
but say we run the test class without the 

[jira] [Comment Edited] (HBASE-20566) Creating a system table after enabling rsgroup feature puts in region into RIT

2018-05-12 Thread Ted Yu (JIRA)

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

Ted Yu edited comment on HBASE-20566 at 5/13/18 12:08 AM:
--

I think the enabling of quota can be done in setUp() method so that we don't 
need to restart the cluster twice.

On my Mac, the duration for TestRSGroups went from 182 seconds (with one of the 
two restarts in your patch since I moved the enabling of quota to setUp, hence 
dropping the first restart) to 166 seconds.

You just need to adjust the assertion in basic test:
{code}
-//3 meta,namespace, group
-assertEquals(3, count);
+//3 meta,namespace, rsgroup, quota
+assertEquals(4, count);
{code}
This also proves that all assertions in previous tests still hold with quota 
enabled, except for the above one.


was (Author: yuzhih...@gmail.com):
I think the enabling of quota can be done in setUp() method so that we don't 
need to restart the cluster twice.

On my Mac, the duration for TestRSGroups went from 182 seconds (with one of the 
two restarts in your patch since I moved the enabling of quota to setUp, hence 
dropping the first restart) to 166 seconds.

You just need to adjust the assertion in basic test:
{code}
-//3 meta,namespace, group
-assertEquals(3, count);
+//3 meta,namespace, rsgroup, quota
+assertEquals(4, count);
{code}
This also proves that all assertions in previous tests still hold with quota 
enabled.

> Creating a system table after enabling rsgroup feature puts in region into RIT
> --
>
> Key: HBASE-20566
> URL: https://issues.apache.org/jira/browse/HBASE-20566
> Project: HBase
>  Issue Type: Bug
>  Components: master
>Reporter: Biju Nair
>Assignee: Nihal Jain
>Priority: Major
> Fix For: 3.0.0
>
> Attachments: HBASE-20566.master.001.patch
>
>
> *Steps to reproduce*
>  - Enable {{rsgroup}} feature
>  - Enable {{quota}} feature which created {{hbase::quota}} table
>  - quota table region will be marked as RIT since the {{rsgroup}} for the 
> table is not known
> {noformat}
> 2018-05-10 14:33:32,392 INFO  [ProcedureExecutorThread-0] 
> zookeeper.ZKTableStateManager: Moving table hbase:quota state from null to 
> ENABLING
> 2018-05-10 14:33:32,397 WARN  [ProcedureExecutorThread-0] 
> rsgroup.RSGroupBasedLoadBalancer: Group for table hbase:quota is null
> 2018-05-10 14:33:32,398 WARN  [ProcedureExecutorThread-0] 
> master.RegionStates: Failed to open/close 89490cd5e00ea8948af413a1df65091a on 
> null, set to FAILED_OPEN
> 2018-05-10 14:33:32,398 INFO  [ProcedureExecutorThread-0] 
> master.RegionStates: Transition {89490cd5e00ea8948af413a1df65091a 
> state=OFFLINE, ts=1525977212397, server=null} to 
> {89490cd5e00ea8948af413a1df65091a state=FAILED_OPEN, ts=1525977212398, 
> server=null}
> 2018-05-10 14:33:32,398 INFO  [ProcedureExecutorThread-0] 
> zookeeper.ZKTableStateManager: Moving table hbase:quota state from ENABLING 
> to ENABLED
> {noformat}
>  - Reason for this issue: Issue
>  - [system table 
> creation|https://github.com/apache/hbase/blob/061a31fad1654d9ded96d118e04c14860413fa25/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java#L1793]
>  doesn't move the table to the appropriate rs group to which system namespace 
> is assigned to. Need to execute logic similar to what is done in the 
> RSGroupAdminEndpoint for [post table creation|#L377] for user table creation.
> *Work Around*
>   - Assigning the system table to ``default`` rsgroup (or to the rsgroup to 
> which the system namespace has been assigned).
>   - Manually assigning the region in RIT from the system table
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Comment Edited] (HBASE-20566) Creating a system table after enabling rsgroup feature puts in region into RIT

2018-05-12 Thread Ted Yu (JIRA)

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

Ted Yu edited comment on HBASE-20566 at 5/12/18 11:59 PM:
--

I think the enabling of quota can be done in setUp() method so that we don't 
need to restart the cluster twice.

On my Mac, the duration for TestRSGroups went from 182 seconds (with one of the 
two restarts in your patch since I moved the enabling of quota to setUp, hence 
dropping the first restart) to 166 seconds.

You just need to adjust the assertion in basic test:
{code}
-//3 meta,namespace, group
-assertEquals(3, count);
+//3 meta,namespace, rsgroup, quota
+assertEquals(4, count);
{code}
This also proves that all assertions in previous tests still hold with quota 
enabled.


was (Author: yuzhih...@gmail.com):
I think the enabling of quota can be done in setUp() method so that we don't 
need to restart the cluster twice.

On my Mac, the duration for TestRSGroups went from 182 seconds to 166 seconds.

You just need to adjust the assertion in basic test:
{code}
-//3 meta,namespace, group
-assertEquals(3, count);
+//3 meta,namespace, rsgroup, quota
+assertEquals(4, count);
{code}
This also proves that all assertions in previous tests still hold with quota 
enabled.

> Creating a system table after enabling rsgroup feature puts in region into RIT
> --
>
> Key: HBASE-20566
> URL: https://issues.apache.org/jira/browse/HBASE-20566
> Project: HBase
>  Issue Type: Bug
>  Components: master
>Reporter: Biju Nair
>Assignee: Nihal Jain
>Priority: Major
> Fix For: 3.0.0
>
> Attachments: HBASE-20566.master.001.patch
>
>
> *Steps to reproduce*
>  - Enable {{rsgroup}} feature
>  - Enable {{quota}} feature which created {{hbase::quota}} table
>  - quota table region will be marked as RIT since the {{rsgroup}} for the 
> table is not known
> {noformat}
> 2018-05-10 14:33:32,392 INFO  [ProcedureExecutorThread-0] 
> zookeeper.ZKTableStateManager: Moving table hbase:quota state from null to 
> ENABLING
> 2018-05-10 14:33:32,397 WARN  [ProcedureExecutorThread-0] 
> rsgroup.RSGroupBasedLoadBalancer: Group for table hbase:quota is null
> 2018-05-10 14:33:32,398 WARN  [ProcedureExecutorThread-0] 
> master.RegionStates: Failed to open/close 89490cd5e00ea8948af413a1df65091a on 
> null, set to FAILED_OPEN
> 2018-05-10 14:33:32,398 INFO  [ProcedureExecutorThread-0] 
> master.RegionStates: Transition {89490cd5e00ea8948af413a1df65091a 
> state=OFFLINE, ts=1525977212397, server=null} to 
> {89490cd5e00ea8948af413a1df65091a state=FAILED_OPEN, ts=1525977212398, 
> server=null}
> 2018-05-10 14:33:32,398 INFO  [ProcedureExecutorThread-0] 
> zookeeper.ZKTableStateManager: Moving table hbase:quota state from ENABLING 
> to ENABLED
> {noformat}
>  - Reason for this issue: Issue
>  - [system table 
> creation|https://github.com/apache/hbase/blob/061a31fad1654d9ded96d118e04c14860413fa25/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java#L1793]
>  doesn't move the table to the appropriate rs group to which system namespace 
> is assigned to. Need to execute logic similar to what is done in the 
> RSGroupAdminEndpoint for [post table creation|#L377] for user table creation.
> *Work Around*
>   - Assigning the system table to ``default`` rsgroup (or to the rsgroup to 
> which the system namespace has been assigned).
>   - Manually assigning the region in RIT from the system table
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Comment Edited] (HBASE-20566) Creating a system table after enabling rsgroup feature puts in region into RIT

2018-05-12 Thread Ted Yu (JIRA)

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

Ted Yu edited comment on HBASE-20566 at 5/12/18 11:22 PM:
--

Patch makes sense.

See TestFavoredNodeTableImport.java for example of calling 
shutdownMiniHBaseCluster / restartHBaseCluster - you don't need to write your 
own method.


was (Author: yuzhih...@gmail.com):
I wonder if adding postCreateTable hook to 
hbase-server/src/main/java/org/apache/hadoop/hbase/quotas/MasterSpaceQuotaObserver.java
 would help solve the issue.

> Creating a system table after enabling rsgroup feature puts in region into RIT
> --
>
> Key: HBASE-20566
> URL: https://issues.apache.org/jira/browse/HBASE-20566
> Project: HBase
>  Issue Type: Bug
>  Components: master
>Reporter: Biju Nair
>Assignee: Nihal Jain
>Priority: Major
> Fix For: 3.0.0
>
> Attachments: HBASE-20566.master.001.patch
>
>
> *Steps to reproduce*
>  - Enable {{rsgroup}} feature
>  - Enable {{quota}} feature which created {{hbase::quota}} table
>  - quota table region will be marked as RIT since the {{rsgroup}} for the 
> table is not known
> {noformat}
> 2018-05-10 14:33:32,392 INFO  [ProcedureExecutorThread-0] 
> zookeeper.ZKTableStateManager: Moving table hbase:quota state from null to 
> ENABLING
> 2018-05-10 14:33:32,397 WARN  [ProcedureExecutorThread-0] 
> rsgroup.RSGroupBasedLoadBalancer: Group for table hbase:quota is null
> 2018-05-10 14:33:32,398 WARN  [ProcedureExecutorThread-0] 
> master.RegionStates: Failed to open/close 89490cd5e00ea8948af413a1df65091a on 
> null, set to FAILED_OPEN
> 2018-05-10 14:33:32,398 INFO  [ProcedureExecutorThread-0] 
> master.RegionStates: Transition {89490cd5e00ea8948af413a1df65091a 
> state=OFFLINE, ts=1525977212397, server=null} to 
> {89490cd5e00ea8948af413a1df65091a state=FAILED_OPEN, ts=1525977212398, 
> server=null}
> 2018-05-10 14:33:32,398 INFO  [ProcedureExecutorThread-0] 
> zookeeper.ZKTableStateManager: Moving table hbase:quota state from ENABLING 
> to ENABLED
> {noformat}
>  - Reason for this issue: Issue
>  - [system table 
> creation|https://github.com/apache/hbase/blob/061a31fad1654d9ded96d118e04c14860413fa25/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java#L1793]
>  doesn't move the table to the appropriate rs group to which system namespace 
> is assigned to. Need to execute logic similar to what is done in the 
> RSGroupAdminEndpoint for [post table creation|#L377] for user table creation.
> *Work Around*
>   - Assigning the system table to ``default`` rsgroup (or to the rsgroup to 
> which the system namespace has been assigned).
>   - Manually assigning the region in RIT from the system table
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Comment Edited] (HBASE-20566) Creating a system table after enabling rsgroup feature puts in region into RIT

2018-05-10 Thread Nihal Jain (JIRA)

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

Nihal Jain edited comment on HBASE-20566 at 5/11/18 5:16 AM:
-

We can handle this by adding the logic to add system tables to appropriate 
rsgroup in *preCreateTableAction()*


was (Author: nihaljain.cs):
We can handle this by adding the logic to add system tables to appropriate ** 
rsgroup ** in *preCreateTableAction()*

> Creating a system table after enabling rsgroup feature puts in region into RIT
> --
>
> Key: HBASE-20566
> URL: https://issues.apache.org/jira/browse/HBASE-20566
> Project: HBase
>  Issue Type: Bug
>  Components: master
>Reporter: Biju Nair
>Priority: Major
>
> *Steps to reproduce*
>  - Enable {{rsgroup}} feature
>  - Enable {{quota}} feature which created {{hbase::quota}} table
>  - quota table region will be marked as RIT since the {{rsgroup}} for the 
> table is not known
> {noformat}
> 2018-05-10 14:33:32,392 INFO  [ProcedureExecutorThread-0] 
> zookeeper.ZKTableStateManager: Moving table hbase:quota state from null to 
> ENABLING
> 2018-05-10 14:33:32,397 WARN  [ProcedureExecutorThread-0] 
> rsgroup.RSGroupBasedLoadBalancer: Group for table hbase:quota is null
> 2018-05-10 14:33:32,398 WARN  [ProcedureExecutorThread-0] 
> master.RegionStates: Failed to open/close 89490cd5e00ea8948af413a1df65091a on 
> null, set to FAILED_OPEN
> 2018-05-10 14:33:32,398 INFO  [ProcedureExecutorThread-0] 
> master.RegionStates: Transition {89490cd5e00ea8948af413a1df65091a 
> state=OFFLINE, ts=1525977212397, server=null} to 
> {89490cd5e00ea8948af413a1df65091a state=FAILED_OPEN, ts=1525977212398, 
> server=null}
> 2018-05-10 14:33:32,398 INFO  [ProcedureExecutorThread-0] 
> zookeeper.ZKTableStateManager: Moving table hbase:quota state from ENABLING 
> to ENABLED
> {noformat}
>  - Reason for this issue: Issue
>  - [system table 
> creation|https://github.com/apache/hbase/blob/061a31fad1654d9ded96d118e04c14860413fa25/hbase-server/src/main/java/org/apache/hadoop/hbase/master/HMaster.java#L1793]
>  doesn't move the table to the appropriate rs group to which system namespace 
> is assigned to. Need to execute logic similar to what is done in the 
> RSGroupAdminEndpoint for [post table creation|#L377] for user table creation.
> *Work Around*
>   - Assigning the system table to ``default`` rsgroup (or to the rsgroup to 
> which the system namespace has been assigned).
>   - Manually assigning the region in RIT from the system table
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)