[jira] [Commented] (HBASE-20690) Moving table to target rsgroup needs to handle TableStateNotFoundException
[ https://issues.apache.org/jira/browse/HBASE-20690?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16503442#comment-16503442 ] stack commented on HBASE-20690: --- Is this a hbase1 dataset that has been restarted with hbase2? > Moving table to target rsgroup needs to handle TableStateNotFoundException > -- > > Key: HBASE-20690 > URL: https://issues.apache.org/jira/browse/HBASE-20690 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu >Priority: Major > > This is related code: > {code} > if (targetGroup != null) { > for (TableName table: tables) { > if (master.getAssignmentManager().isTableDisabled(table)) { > LOG.debug("Skipping move regions because the table" + table + " > is disabled."); > continue; > } > {code} > In a stack trace [~rmani] showed me: > {code} > 2018-06-06 07:10:44,893 ERROR > [RpcServer.default.FPBQ.Fifo.handler=29,queue=2,port=2] > master.TableStateManager: Unable to get table demo:tbl1 state > org.apache.hadoop.hbase.master.TableStateManager$TableStateNotFoundException: > demo:tbl1 > at > org.apache.hadoop.hbase.master.TableStateManager.getTableState(TableStateManager.java:193) > at > org.apache.hadoop.hbase.master.TableStateManager.isTableState(TableStateManager.java:143) > at > org.apache.hadoop.hbase.master.assignment.AssignmentManager.isTableDisabled(AssignmentManager.java:346) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminServer.moveTables(RSGroupAdminServer.java:407) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.assignTableToGroup(RSGroupAdminEndpoint.java:447) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.postCreateTable(RSGroupAdminEndpoint.java:470) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:334) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:331) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost$ObserverOperationWithoutResult.callObserver(CoprocessorHost.java:540) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost.execOperation(CoprocessorHost.java:614) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost.postCreateTable(MasterCoprocessorHost.java:331) > at org.apache.hadoop.hbase.master.HMaster$3.run(HMaster.java:1768) > at > org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil.submitProcedure(MasterProcedureUtil.java:131) > at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1750) > at > org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:593) > at > org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:409) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:131) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304) > {code} > The logic should take potential TableStateNotFoundException into account. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (HBASE-20690) Moving table to target rsgroup needs to handle TableStateNotFoundException
[ https://issues.apache.org/jira/browse/HBASE-20690?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16503446#comment-16503446 ] Ted Yu commented on HBASE-20690: hbase1 should not be involved. [~rmani] can provide more details on test procedure. > Moving table to target rsgroup needs to handle TableStateNotFoundException > -- > > Key: HBASE-20690 > URL: https://issues.apache.org/jira/browse/HBASE-20690 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu >Priority: Major > > This is related code: > {code} > if (targetGroup != null) { > for (TableName table: tables) { > if (master.getAssignmentManager().isTableDisabled(table)) { > LOG.debug("Skipping move regions because the table" + table + " > is disabled."); > continue; > } > {code} > In a stack trace [~rmani] showed me: > {code} > 2018-06-06 07:10:44,893 ERROR > [RpcServer.default.FPBQ.Fifo.handler=29,queue=2,port=2] > master.TableStateManager: Unable to get table demo:tbl1 state > org.apache.hadoop.hbase.master.TableStateManager$TableStateNotFoundException: > demo:tbl1 > at > org.apache.hadoop.hbase.master.TableStateManager.getTableState(TableStateManager.java:193) > at > org.apache.hadoop.hbase.master.TableStateManager.isTableState(TableStateManager.java:143) > at > org.apache.hadoop.hbase.master.assignment.AssignmentManager.isTableDisabled(AssignmentManager.java:346) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminServer.moveTables(RSGroupAdminServer.java:407) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.assignTableToGroup(RSGroupAdminEndpoint.java:447) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.postCreateTable(RSGroupAdminEndpoint.java:470) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:334) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:331) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost$ObserverOperationWithoutResult.callObserver(CoprocessorHost.java:540) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost.execOperation(CoprocessorHost.java:614) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost.postCreateTable(MasterCoprocessorHost.java:331) > at org.apache.hadoop.hbase.master.HMaster$3.run(HMaster.java:1768) > at > org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil.submitProcedure(MasterProcedureUtil.java:131) > at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1750) > at > org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:593) > at > org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:409) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:131) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304) > {code} > The logic should take potential TableStateNotFoundException into account. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (HBASE-20690) Moving table to target rsgroup needs to handle TableStateNotFoundException
[ https://issues.apache.org/jira/browse/HBASE-20690?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16776326#comment-16776326 ] Xiang Li commented on HBASE-20690: -- Tried with patch v002 and could see a NPE in master's log, thrown from the following statement: {code} String groupName = master.getClusterSchema().getNamespace(desc.getTableName().getNamespaceAsString()) .getConfigurationValue(RSGroupInfo.NAMESPACE_DESC_PROP_GROUP); {code} master.ClusterSchema() is null and I guess the cluster schema service is not initialized yet > Moving table to target rsgroup needs to handle TableStateNotFoundException > -- > > Key: HBASE-20690 > URL: https://issues.apache.org/jira/browse/HBASE-20690 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu >Assignee: Guangxu Cheng >Priority: Major > Attachments: HBASE-20690.master.001.patch, > HBASE-20690.master.002.patch > > > This is related code: > {code} > if (targetGroup != null) { > for (TableName table: tables) { > if (master.getAssignmentManager().isTableDisabled(table)) { > LOG.debug("Skipping move regions because the table" + table + " > is disabled."); > continue; > } > {code} > In a stack trace [~rmani] showed me: > {code} > 2018-06-06 07:10:44,893 ERROR > [RpcServer.default.FPBQ.Fifo.handler=29,queue=2,port=2] > master.TableStateManager: Unable to get table demo:tbl1 state > org.apache.hadoop.hbase.master.TableStateManager$TableStateNotFoundException: > demo:tbl1 > at > org.apache.hadoop.hbase.master.TableStateManager.getTableState(TableStateManager.java:193) > at > org.apache.hadoop.hbase.master.TableStateManager.isTableState(TableStateManager.java:143) > at > org.apache.hadoop.hbase.master.assignment.AssignmentManager.isTableDisabled(AssignmentManager.java:346) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminServer.moveTables(RSGroupAdminServer.java:407) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.assignTableToGroup(RSGroupAdminEndpoint.java:447) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.postCreateTable(RSGroupAdminEndpoint.java:470) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:334) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:331) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost$ObserverOperationWithoutResult.callObserver(CoprocessorHost.java:540) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost.execOperation(CoprocessorHost.java:614) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost.postCreateTable(MasterCoprocessorHost.java:331) > at org.apache.hadoop.hbase.master.HMaster$3.run(HMaster.java:1768) > at > org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil.submitProcedure(MasterProcedureUtil.java:131) > at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1750) > at > org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:593) > at > org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:409) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:131) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304) > {code} > The logic should take potential TableStateNotFoundException into account. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (HBASE-20690) Moving table to target rsgroup needs to handle TableStateNotFoundException
[ https://issues.apache.org/jira/browse/HBASE-20690?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16776347#comment-16776347 ] Hadoop QA commented on HBASE-20690: --- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 15s{color} | {color:blue} Docker mode activated. {color} | || || || || {color:brown} Prechecks {color} || | {color:green}+1{color} | {color:green} hbaseanti {color} | {color:green} 0m 0s{color} | {color:green} Patch does not have any anti-patterns. {color} | | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s{color} | {color:green} The patch does not contain any @author tags. {color} | | {color:orange}-0{color} | {color:orange} test4tests {color} | {color:orange} 0m 0s{color} | {color:orange} The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch. {color} | || || || || {color:brown} master Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 4m 58s{color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 37s{color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 14s{color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} shadedjars {color} | {color:green} 4m 53s{color} | {color:green} branch has no errors when building our shaded downstream artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 0m 39s{color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 17s{color} | {color:green} master passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 4m 21s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 43s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 43s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 12s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s{color} | {color:green} The patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} shadedjars {color} | {color:green} 4m 56s{color} | {color:green} patch has no errors when building our shaded downstream artifacts. {color} | | {color:green}+1{color} | {color:green} hadoopcheck {color} | {color:green} 8m 48s{color} | {color:green} Patch does not cause any errors with Hadoop 2.7.4 or 3.0.0. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 0m 42s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 16s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:red}-1{color} | {color:red} unit {color} | {color:red} 5m 53s{color} | {color:red} hbase-rsgroup in the patch failed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 9s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 38m 20s{color} | {color:black} {color} | \\ \\ || Reason || Tests || | Failed junit tests | hadoop.hbase.rsgroup.TestEnableRSGroups | | | hadoop.hbase.rsgroup.TestRSGroupsWithACL | | | hadoop.hbase.rsgroup.TestRSGroupsBasics | | | hadoop.hbase.rsgroup.TestRSGroupsBalance | | | hadoop.hbase.rsgroup.TestRSGroupsOfflineMode | | | hadoop.hbase.rsgroup.TestRSGroupsAdmin1 | | | hadoop.hbase.rsgroup.TestRSGroupsKillRS | | | hadoop.hbase.rsgroup.TestRSGroupsAdmin2 | \\ \\ || Subsystem || Report/Notes || | Docker | Client=17.05.0-ce Server=17.05.0-ce Image:yetus/hbase:b002b0b | | JIRA Issue | HBASE-20690 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12941145/HBASE-20690.master.002.patch | | Optional Tests | dupname asflicense javac javadoc unit findbugs shadedjars hadoopcheck hbaseanti checkstyle compile | | uname | Linux 701c45373c9d 4.4.0-139-generic #165~14.04.1-Ubuntu SMP Wed Oct 31 10:55:11 UTC 2018 x86_64 GNU/Linux | | Build tool | maven | | Personality | /home/jenkins/jenkins-slave/workspace/PreCommit-HBASE-Build/component/dev-support/hbase-personality.sh | | git revision | master /
[jira] [Commented] (HBASE-20690) Moving table to target rsgroup needs to handle TableStateNotFoundException
[ https://issues.apache.org/jira/browse/HBASE-20690?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16778910#comment-16778910 ] Xiang Li commented on HBASE-20690: -- Would like to continue [~andrewcheng]'s work on this JIRA, as I encountered the same issue as recorded in HBASE-21919. Currently blocked by [this issue|https://issues.apache.org/jira/browse/HBASE-20690?focusedCommentId=16776326&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16776326] > Moving table to target rsgroup needs to handle TableStateNotFoundException > -- > > Key: HBASE-20690 > URL: https://issues.apache.org/jira/browse/HBASE-20690 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu >Assignee: Guangxu Cheng >Priority: Major > Attachments: HBASE-20690.master.001.patch, > HBASE-20690.master.002.patch > > > This is related code: > {code} > if (targetGroup != null) { > for (TableName table: tables) { > if (master.getAssignmentManager().isTableDisabled(table)) { > LOG.debug("Skipping move regions because the table" + table + " > is disabled."); > continue; > } > {code} > In a stack trace [~rmani] showed me: > {code} > 2018-06-06 07:10:44,893 ERROR > [RpcServer.default.FPBQ.Fifo.handler=29,queue=2,port=2] > master.TableStateManager: Unable to get table demo:tbl1 state > org.apache.hadoop.hbase.master.TableStateManager$TableStateNotFoundException: > demo:tbl1 > at > org.apache.hadoop.hbase.master.TableStateManager.getTableState(TableStateManager.java:193) > at > org.apache.hadoop.hbase.master.TableStateManager.isTableState(TableStateManager.java:143) > at > org.apache.hadoop.hbase.master.assignment.AssignmentManager.isTableDisabled(AssignmentManager.java:346) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminServer.moveTables(RSGroupAdminServer.java:407) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.assignTableToGroup(RSGroupAdminEndpoint.java:447) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.postCreateTable(RSGroupAdminEndpoint.java:470) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:334) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:331) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost$ObserverOperationWithoutResult.callObserver(CoprocessorHost.java:540) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost.execOperation(CoprocessorHost.java:614) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost.postCreateTable(MasterCoprocessorHost.java:331) > at org.apache.hadoop.hbase.master.HMaster$3.run(HMaster.java:1768) > at > org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil.submitProcedure(MasterProcedureUtil.java:131) > at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1750) > at > org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:593) > at > org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:409) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:131) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304) > {code} > The logic should take potential TableStateNotFoundException into account. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (HBASE-20690) Moving table to target rsgroup needs to handle TableStateNotFoundException
[ https://issues.apache.org/jira/browse/HBASE-20690?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16784549#comment-16784549 ] Xiang Li commented on HBASE-20690: -- Hi [~xucang] I have been working on this JIRA for some days, and would like to provide some updates. # I think the patch v002 uploaded by [~andrewcheng] is the right way to go # Some potential issues are also introduced by patch v002, as described below. Patch v002 moves the following operations from postCreateTable() to preCreateTableAction() # Decide which rsgroup to go to according to table's namespace # Call RSGroupInfoManagerImpl#moveTables() to update the rsgroup information (but do not move the regions actually) The changes above also affects the procedure to create hbase:rsgroup table when HMaster starts, by triggering a race condition on cluster schema service. In HMaster#finishActiveMasterInitialization(), hbase:rsgroup is created by {code} this.balancer.initialize(); // line 1060 {code} by HMaster#createSystemTable() internally, in which, a CreateTableProcedure is scheduled. preCreateTableAction is called and the following statement is called to determine the namespace {code} String groupName = master.getClusterSchema().getNamespace(desc.getTableName().getNamespaceAsString()) .getConfigurationValue(RSGroupInfo.NAMESPACE_DESC_PROP_GROUP); {code} But getClusterSchema might return null because the cluster schema service is not ready yet. Actually, it is not ready until the following statement is called in HMaster#finishActiveMasterInitialization() {code} initClusterSchemaService(); // line 1132 {code} > Moving table to target rsgroup needs to handle TableStateNotFoundException > -- > > Key: HBASE-20690 > URL: https://issues.apache.org/jira/browse/HBASE-20690 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu >Assignee: Xiang Li >Priority: Major > Attachments: HBASE-20690.master.001.patch, > HBASE-20690.master.002.patch > > > This is related code: > {code} > if (targetGroup != null) { > for (TableName table: tables) { > if (master.getAssignmentManager().isTableDisabled(table)) { > LOG.debug("Skipping move regions because the table" + table + " is > disabled."); > continue; > } > {code} > In a stack trace [~rmani] showed me: > {code} > 2018-06-06 07:10:44,893 ERROR > [RpcServer.default.FPBQ.Fifo.handler=29,queue=2,port=2] > master.TableStateManager: Unable to get table demo:tbl1 state > org.apache.hadoop.hbase.master.TableStateManager$TableStateNotFoundException: > demo:tbl1 > at > org.apache.hadoop.hbase.master.TableStateManager.getTableState(TableStateManager.java:193) > at > org.apache.hadoop.hbase.master.TableStateManager.isTableState(TableStateManager.java:143) > at > org.apache.hadoop.hbase.master.assignment.AssignmentManager.isTableDisabled(AssignmentManager.java:346) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminServer.moveTables(RSGroupAdminServer.java:407) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.assignTableToGroup(RSGroupAdminEndpoint.java:447) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.postCreateTable(RSGroupAdminEndpoint.java:470) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:334) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:331) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost$ObserverOperationWithoutResult.callObserver(CoprocessorHost.java:540) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost.execOperation(CoprocessorHost.java:614) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost.postCreateTable(MasterCoprocessorHost.java:331) > at org.apache.hadoop.hbase.master.HMaster$3.run(HMaster.java:1768) > at > org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil.submitProcedure(MasterProcedureUtil.java:131) > at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1750) > at > org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:593) > at > org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:409) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:131) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304) > {code} > The logic should take potential TableStateNotFoundException into account. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (HBASE-20690) Moving table to target rsgroup needs to handle TableStateNotFoundException
[ https://issues.apache.org/jira/browse/HBASE-20690?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16623623#comment-16623623 ] Guangxu Cheng commented on HBASE-20690: --- These error logs generated when creating table. The related code as below: {code} getMaster().getMasterCoprocessorHost().preCreateTable(tableDescriptor, newRegions); LOG.info(getClientIdAuditPrefix() + " create " + tableDescriptor); ProcedurePrepareLatch latch = ProcedurePrepareLatch.createBlockingLatch(); submitProcedure(new CreateTableProcedure( procedureExecutor.getEnvironment(), tableDescriptor, newRegions, latch)); latch.await(); getMaster().getMasterCoprocessorHost().postCreateTable(tableDescriptor, newRegions); {code} >From the code, we can see that there is a race between >{{CreateTableProcedure}} and {{postCreateTable}}. When {{postCreateTable}} is executing, if {{CreateTableProcedure}} has not been executed yet, {{TableStateNotFoundException}} will be thrown.Otherwise, regions will be reassigned according to group information. In fact, we only need to add the table name to the group information before creating the table. > Moving table to target rsgroup needs to handle TableStateNotFoundException > -- > > Key: HBASE-20690 > URL: https://issues.apache.org/jira/browse/HBASE-20690 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu >Priority: Major > > This is related code: > {code} > if (targetGroup != null) { > for (TableName table: tables) { > if (master.getAssignmentManager().isTableDisabled(table)) { > LOG.debug("Skipping move regions because the table" + table + " > is disabled."); > continue; > } > {code} > In a stack trace [~rmani] showed me: > {code} > 2018-06-06 07:10:44,893 ERROR > [RpcServer.default.FPBQ.Fifo.handler=29,queue=2,port=2] > master.TableStateManager: Unable to get table demo:tbl1 state > org.apache.hadoop.hbase.master.TableStateManager$TableStateNotFoundException: > demo:tbl1 > at > org.apache.hadoop.hbase.master.TableStateManager.getTableState(TableStateManager.java:193) > at > org.apache.hadoop.hbase.master.TableStateManager.isTableState(TableStateManager.java:143) > at > org.apache.hadoop.hbase.master.assignment.AssignmentManager.isTableDisabled(AssignmentManager.java:346) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminServer.moveTables(RSGroupAdminServer.java:407) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.assignTableToGroup(RSGroupAdminEndpoint.java:447) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.postCreateTable(RSGroupAdminEndpoint.java:470) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:334) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:331) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost$ObserverOperationWithoutResult.callObserver(CoprocessorHost.java:540) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost.execOperation(CoprocessorHost.java:614) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost.postCreateTable(MasterCoprocessorHost.java:331) > at org.apache.hadoop.hbase.master.HMaster$3.run(HMaster.java:1768) > at > org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil.submitProcedure(MasterProcedureUtil.java:131) > at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1750) > at > org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:593) > at > org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:409) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:131) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304) > {code} > The logic should take potential TableStateNotFoundException into account. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (HBASE-20690) Moving table to target rsgroup needs to handle TableStateNotFoundException
[ https://issues.apache.org/jira/browse/HBASE-20690?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16623628#comment-16623628 ] Guangxu Cheng commented on HBASE-20690: --- patch 001 only fix the error information that might be generated when creating table. No other considerations. > Moving table to target rsgroup needs to handle TableStateNotFoundException > -- > > Key: HBASE-20690 > URL: https://issues.apache.org/jira/browse/HBASE-20690 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu >Priority: Major > Attachments: HBASE-20690.master.001.patch > > > This is related code: > {code} > if (targetGroup != null) { > for (TableName table: tables) { > if (master.getAssignmentManager().isTableDisabled(table)) { > LOG.debug("Skipping move regions because the table" + table + " > is disabled."); > continue; > } > {code} > In a stack trace [~rmani] showed me: > {code} > 2018-06-06 07:10:44,893 ERROR > [RpcServer.default.FPBQ.Fifo.handler=29,queue=2,port=2] > master.TableStateManager: Unable to get table demo:tbl1 state > org.apache.hadoop.hbase.master.TableStateManager$TableStateNotFoundException: > demo:tbl1 > at > org.apache.hadoop.hbase.master.TableStateManager.getTableState(TableStateManager.java:193) > at > org.apache.hadoop.hbase.master.TableStateManager.isTableState(TableStateManager.java:143) > at > org.apache.hadoop.hbase.master.assignment.AssignmentManager.isTableDisabled(AssignmentManager.java:346) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminServer.moveTables(RSGroupAdminServer.java:407) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.assignTableToGroup(RSGroupAdminEndpoint.java:447) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.postCreateTable(RSGroupAdminEndpoint.java:470) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:334) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:331) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost$ObserverOperationWithoutResult.callObserver(CoprocessorHost.java:540) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost.execOperation(CoprocessorHost.java:614) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost.postCreateTable(MasterCoprocessorHost.java:331) > at org.apache.hadoop.hbase.master.HMaster$3.run(HMaster.java:1768) > at > org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil.submitProcedure(MasterProcedureUtil.java:131) > at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1750) > at > org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:593) > at > org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:409) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:131) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304) > {code} > The logic should take potential TableStateNotFoundException into account. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (HBASE-20690) Moving table to target rsgroup needs to handle TableStateNotFoundException
[ https://issues.apache.org/jira/browse/HBASE-20690?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16624911#comment-16624911 ] Xu Cang commented on HBASE-20690: - Reviewed your patch [~andrewcheng] and I have some questions. Please bear with me if I misunderstand something. # You changed "groupAdminServer.moveTables" to "groupInfoManager.moveTables". Which is going to miss the step of updating assignmentManager. Is this intentionally? If so, could you please explain why? # In "RSGroupAdminEndpoint", you changed "#postCreateTable" to "#preCreateTable"? How do we do cleanup if table create procesure fails . (if necessary)? BTW, could you please also change Jira status to "patch available" and let HadoopQA takes over the unit tests? Thanks. > Moving table to target rsgroup needs to handle TableStateNotFoundException > -- > > Key: HBASE-20690 > URL: https://issues.apache.org/jira/browse/HBASE-20690 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu >Priority: Major > Attachments: HBASE-20690.master.001.patch > > > This is related code: > {code} > if (targetGroup != null) { > for (TableName table: tables) { > if (master.getAssignmentManager().isTableDisabled(table)) { > LOG.debug("Skipping move regions because the table" + table + " > is disabled."); > continue; > } > {code} > In a stack trace [~rmani] showed me: > {code} > 2018-06-06 07:10:44,893 ERROR > [RpcServer.default.FPBQ.Fifo.handler=29,queue=2,port=2] > master.TableStateManager: Unable to get table demo:tbl1 state > org.apache.hadoop.hbase.master.TableStateManager$TableStateNotFoundException: > demo:tbl1 > at > org.apache.hadoop.hbase.master.TableStateManager.getTableState(TableStateManager.java:193) > at > org.apache.hadoop.hbase.master.TableStateManager.isTableState(TableStateManager.java:143) > at > org.apache.hadoop.hbase.master.assignment.AssignmentManager.isTableDisabled(AssignmentManager.java:346) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminServer.moveTables(RSGroupAdminServer.java:407) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.assignTableToGroup(RSGroupAdminEndpoint.java:447) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.postCreateTable(RSGroupAdminEndpoint.java:470) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:334) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:331) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost$ObserverOperationWithoutResult.callObserver(CoprocessorHost.java:540) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost.execOperation(CoprocessorHost.java:614) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost.postCreateTable(MasterCoprocessorHost.java:331) > at org.apache.hadoop.hbase.master.HMaster$3.run(HMaster.java:1768) > at > org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil.submitProcedure(MasterProcedureUtil.java:131) > at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1750) > at > org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:593) > at > org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:409) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:131) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304) > {code} > The logic should take potential TableStateNotFoundException into account. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (HBASE-20690) Moving table to target rsgroup needs to handle TableStateNotFoundException
[ https://issues.apache.org/jira/browse/HBASE-20690?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16626699#comment-16626699 ] Guangxu Cheng commented on HBASE-20690: --- Thanks for your review.[~xucang] # Let's look at the difference between {{groupAdminServer.moveTables}} and {{groupInfoManager.moveTables}} first. #* {{groupAdminServer.moveTables}} will update the group information and move the regions of the table to the specified group. #* {{groupInfoManager.moveTables}} just updates the group information. The {{preCreateTable}} is executed before the table is built successfully. At this time, the related information of the region has not been generated and assigned yet, so there is no need to move the region. It is because the table has not been created successfully, so there will be TableStateNotFoundException. After we add the table to the specified group in advance, during the process of creating the table, {{CREATE_TABLE_ASSIGN_REGIONS}} will assign the regions to the specified regionservers according to the group information. # In the process of creating a table, you can roll back only if an exception occurs during {{CREATE_TABLE_PRE_OPERATION}}. {{CREATE_TABLE_PRE_OPERATION}} is to determine whether a table exists. If the table already exists, it is possible to change the grouping to which the table belongs, and this place really needs to be rolled back. We only need to move operations in {{preCreateTable}} to {{preCreateTableAction}}. > Moving table to target rsgroup needs to handle TableStateNotFoundException > -- > > Key: HBASE-20690 > URL: https://issues.apache.org/jira/browse/HBASE-20690 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu >Priority: Major > Attachments: HBASE-20690.master.001.patch > > > This is related code: > {code} > if (targetGroup != null) { > for (TableName table: tables) { > if (master.getAssignmentManager().isTableDisabled(table)) { > LOG.debug("Skipping move regions because the table" + table + " > is disabled."); > continue; > } > {code} > In a stack trace [~rmani] showed me: > {code} > 2018-06-06 07:10:44,893 ERROR > [RpcServer.default.FPBQ.Fifo.handler=29,queue=2,port=2] > master.TableStateManager: Unable to get table demo:tbl1 state > org.apache.hadoop.hbase.master.TableStateManager$TableStateNotFoundException: > demo:tbl1 > at > org.apache.hadoop.hbase.master.TableStateManager.getTableState(TableStateManager.java:193) > at > org.apache.hadoop.hbase.master.TableStateManager.isTableState(TableStateManager.java:143) > at > org.apache.hadoop.hbase.master.assignment.AssignmentManager.isTableDisabled(AssignmentManager.java:346) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminServer.moveTables(RSGroupAdminServer.java:407) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.assignTableToGroup(RSGroupAdminEndpoint.java:447) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.postCreateTable(RSGroupAdminEndpoint.java:470) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:334) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:331) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost$ObserverOperationWithoutResult.callObserver(CoprocessorHost.java:540) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost.execOperation(CoprocessorHost.java:614) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost.postCreateTable(MasterCoprocessorHost.java:331) > at org.apache.hadoop.hbase.master.HMaster$3.run(HMaster.java:1768) > at > org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil.submitProcedure(MasterProcedureUtil.java:131) > at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1750) > at > org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:593) > at > org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:409) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:131) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304) > {code} > The logic should take potential TableStateNotFoundException into account. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (HBASE-20690) Moving table to target rsgroup needs to handle TableStateNotFoundException
[ https://issues.apache.org/jira/browse/HBASE-20690?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16626704#comment-16626704 ] Guangxu Cheng commented on HBASE-20690: --- Attach 002 patch to move operations in {{preCreateTable}} to {{preCreateTableAction}}. > Moving table to target rsgroup needs to handle TableStateNotFoundException > -- > > Key: HBASE-20690 > URL: https://issues.apache.org/jira/browse/HBASE-20690 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu >Priority: Major > Attachments: HBASE-20690.master.001.patch, > HBASE-20690.master.002.patch > > > This is related code: > {code} > if (targetGroup != null) { > for (TableName table: tables) { > if (master.getAssignmentManager().isTableDisabled(table)) { > LOG.debug("Skipping move regions because the table" + table + " > is disabled."); > continue; > } > {code} > In a stack trace [~rmani] showed me: > {code} > 2018-06-06 07:10:44,893 ERROR > [RpcServer.default.FPBQ.Fifo.handler=29,queue=2,port=2] > master.TableStateManager: Unable to get table demo:tbl1 state > org.apache.hadoop.hbase.master.TableStateManager$TableStateNotFoundException: > demo:tbl1 > at > org.apache.hadoop.hbase.master.TableStateManager.getTableState(TableStateManager.java:193) > at > org.apache.hadoop.hbase.master.TableStateManager.isTableState(TableStateManager.java:143) > at > org.apache.hadoop.hbase.master.assignment.AssignmentManager.isTableDisabled(AssignmentManager.java:346) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminServer.moveTables(RSGroupAdminServer.java:407) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.assignTableToGroup(RSGroupAdminEndpoint.java:447) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.postCreateTable(RSGroupAdminEndpoint.java:470) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:334) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:331) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost$ObserverOperationWithoutResult.callObserver(CoprocessorHost.java:540) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost.execOperation(CoprocessorHost.java:614) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost.postCreateTable(MasterCoprocessorHost.java:331) > at org.apache.hadoop.hbase.master.HMaster$3.run(HMaster.java:1768) > at > org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil.submitProcedure(MasterProcedureUtil.java:131) > at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1750) > at > org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:593) > at > org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:409) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:131) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304) > {code} > The logic should take potential TableStateNotFoundException into account. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (HBASE-20690) Moving table to target rsgroup needs to handle TableStateNotFoundException
[ https://issues.apache.org/jira/browse/HBASE-20690?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16626786#comment-16626786 ] Xu Cang commented on HBASE-20690: - Thanks for your great explanation. [~andrewcheng] non-binding +1 to your patch! > Moving table to target rsgroup needs to handle TableStateNotFoundException > -- > > Key: HBASE-20690 > URL: https://issues.apache.org/jira/browse/HBASE-20690 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu >Assignee: Guangxu Cheng >Priority: Major > Attachments: HBASE-20690.master.001.patch, > HBASE-20690.master.002.patch > > > This is related code: > {code} > if (targetGroup != null) { > for (TableName table: tables) { > if (master.getAssignmentManager().isTableDisabled(table)) { > LOG.debug("Skipping move regions because the table" + table + " > is disabled."); > continue; > } > {code} > In a stack trace [~rmani] showed me: > {code} > 2018-06-06 07:10:44,893 ERROR > [RpcServer.default.FPBQ.Fifo.handler=29,queue=2,port=2] > master.TableStateManager: Unable to get table demo:tbl1 state > org.apache.hadoop.hbase.master.TableStateManager$TableStateNotFoundException: > demo:tbl1 > at > org.apache.hadoop.hbase.master.TableStateManager.getTableState(TableStateManager.java:193) > at > org.apache.hadoop.hbase.master.TableStateManager.isTableState(TableStateManager.java:143) > at > org.apache.hadoop.hbase.master.assignment.AssignmentManager.isTableDisabled(AssignmentManager.java:346) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminServer.moveTables(RSGroupAdminServer.java:407) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.assignTableToGroup(RSGroupAdminEndpoint.java:447) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.postCreateTable(RSGroupAdminEndpoint.java:470) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:334) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:331) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost$ObserverOperationWithoutResult.callObserver(CoprocessorHost.java:540) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost.execOperation(CoprocessorHost.java:614) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost.postCreateTable(MasterCoprocessorHost.java:331) > at org.apache.hadoop.hbase.master.HMaster$3.run(HMaster.java:1768) > at > org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil.submitProcedure(MasterProcedureUtil.java:131) > at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1750) > at > org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:593) > at > org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:409) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:131) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304) > {code} > The logic should take potential TableStateNotFoundException into account. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (HBASE-20690) Moving table to target rsgroup needs to handle TableStateNotFoundException
[ https://issues.apache.org/jira/browse/HBASE-20690?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16636295#comment-16636295 ] Ted Yu commented on HBASE-20690: Triggered QA run #14566 > Moving table to target rsgroup needs to handle TableStateNotFoundException > -- > > Key: HBASE-20690 > URL: https://issues.apache.org/jira/browse/HBASE-20690 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu >Assignee: Guangxu Cheng >Priority: Major > Attachments: HBASE-20690.master.001.patch, > HBASE-20690.master.002.patch > > > This is related code: > {code} > if (targetGroup != null) { > for (TableName table: tables) { > if (master.getAssignmentManager().isTableDisabled(table)) { > LOG.debug("Skipping move regions because the table" + table + " > is disabled."); > continue; > } > {code} > In a stack trace [~rmani] showed me: > {code} > 2018-06-06 07:10:44,893 ERROR > [RpcServer.default.FPBQ.Fifo.handler=29,queue=2,port=2] > master.TableStateManager: Unable to get table demo:tbl1 state > org.apache.hadoop.hbase.master.TableStateManager$TableStateNotFoundException: > demo:tbl1 > at > org.apache.hadoop.hbase.master.TableStateManager.getTableState(TableStateManager.java:193) > at > org.apache.hadoop.hbase.master.TableStateManager.isTableState(TableStateManager.java:143) > at > org.apache.hadoop.hbase.master.assignment.AssignmentManager.isTableDisabled(AssignmentManager.java:346) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminServer.moveTables(RSGroupAdminServer.java:407) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.assignTableToGroup(RSGroupAdminEndpoint.java:447) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.postCreateTable(RSGroupAdminEndpoint.java:470) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:334) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:331) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost$ObserverOperationWithoutResult.callObserver(CoprocessorHost.java:540) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost.execOperation(CoprocessorHost.java:614) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost.postCreateTable(MasterCoprocessorHost.java:331) > at org.apache.hadoop.hbase.master.HMaster$3.run(HMaster.java:1768) > at > org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil.submitProcedure(MasterProcedureUtil.java:131) > at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1750) > at > org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:593) > at > org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:409) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:131) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304) > {code} > The logic should take potential TableStateNotFoundException into account. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (HBASE-20690) Moving table to target rsgroup needs to handle TableStateNotFoundException
[ https://issues.apache.org/jira/browse/HBASE-20690?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16636323#comment-16636323 ] Hadoop QA commented on HBASE-20690: --- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 9s{color} | {color:blue} Docker mode activated. {color} | || || || || {color:brown} Prechecks {color} || | {color:green}+1{color} | {color:green} hbaseanti {color} | {color:green} 0m 0s{color} | {color:green} Patch does not have any anti-patterns. {color} | | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s{color} | {color:green} The patch does not contain any @author tags. {color} | | {color:orange}-0{color} | {color:orange} test4tests {color} | {color:orange} 0m 0s{color} | {color:orange} The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch. {color} | || || || || {color:brown} master Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 5m 10s{color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 35s{color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 13s{color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} shadedjars {color} | {color:green} 4m 21s{color} | {color:green} branch has no errors when building our shaded downstream artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 0m 36s{color} | {color:green} master passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 17s{color} | {color:green} master passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 5m 10s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 39s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 39s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 13s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s{color} | {color:green} The patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} shadedjars {color} | {color:green} 4m 24s{color} | {color:green} patch has no errors when building our shaded downstream artifacts. {color} | | {color:green}+1{color} | {color:green} hadoopcheck {color} | {color:green} 11m 8s{color} | {color:green} Patch does not cause any errors with Hadoop 2.7.4 or 3.0.0. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 0m 46s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 18s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:red}-1{color} | {color:red} unit {color} | {color:red} 4m 25s{color} | {color:red} hbase-rsgroup in the patch failed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 10s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black} 39m 27s{color} | {color:black} {color} | \\ \\ || Reason || Tests || | Failed junit tests | hadoop.hbase.rsgroup.TestRSGroupsWithACL | | | hadoop.hbase.rsgroup.TestRSGroupsOfflineMode | | | hadoop.hbase.rsgroup.TestEnableRSGroup | \\ \\ || Subsystem || Report/Notes || | Docker | Client=17.05.0-ce Server=17.05.0-ce Image:yetus/hbase:b002b0b | | JIRA Issue | HBASE-20690 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12941145/HBASE-20690.master.002.patch | | Optional Tests | dupname asflicense javac javadoc unit findbugs shadedjars hadoopcheck hbaseanti checkstyle compile | | uname | Linux 68ce2db3955d 3.13.0-143-generic #192-Ubuntu SMP Tue Feb 27 10:45:36 UTC 2018 x86_64 GNU/Linux | | Build tool | maven | | Personality | /home/jenkins/jenkins-slave/workspace/PreCommit-HBASE-Build/component/dev-support/hbase-personality.sh | | git revision | master / 42aa3dd463 | | maven | version: Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-17T18:33:14Z) | | Default Java | 1.8.0_181 | | findbugs | v3.1.0-RC3 | | unit | https://builds.apache.org/job/PreCommit-HBASE-Build/14566/artifa
[jira] [Commented] (HBASE-20690) Moving table to target rsgroup needs to handle TableStateNotFoundException
[ https://issues.apache.org/jira/browse/HBASE-20690?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16657916#comment-16657916 ] Ted Yu commented on HBASE-20690: When I ran TestRSGroupsOfflineMode with patch v2, there were a lot of log lines in the following form: {code} 2018-10-20 17:06:46,721 INFO [org.apache.hadoop.hbase.rsgroup.RSGroupInfoManagerImpl$RSGroupStartupWorker-cn012.l42scl.hortonworks.com,40283,1540055196293] rsgroup.RSGroupInfoManagerImpl$RSGroupStartupWorker(827): RSGroup table=hbase:rsgroup isOnline=true, regionCount=0, assignCount=0, rootMetaFound=true {code} The test didn't seem to make progress. > Moving table to target rsgroup needs to handle TableStateNotFoundException > -- > > Key: HBASE-20690 > URL: https://issues.apache.org/jira/browse/HBASE-20690 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu >Assignee: Guangxu Cheng >Priority: Major > Attachments: HBASE-20690.master.001.patch, > HBASE-20690.master.002.patch > > > This is related code: > {code} > if (targetGroup != null) { > for (TableName table: tables) { > if (master.getAssignmentManager().isTableDisabled(table)) { > LOG.debug("Skipping move regions because the table" + table + " > is disabled."); > continue; > } > {code} > In a stack trace [~rmani] showed me: > {code} > 2018-06-06 07:10:44,893 ERROR > [RpcServer.default.FPBQ.Fifo.handler=29,queue=2,port=2] > master.TableStateManager: Unable to get table demo:tbl1 state > org.apache.hadoop.hbase.master.TableStateManager$TableStateNotFoundException: > demo:tbl1 > at > org.apache.hadoop.hbase.master.TableStateManager.getTableState(TableStateManager.java:193) > at > org.apache.hadoop.hbase.master.TableStateManager.isTableState(TableStateManager.java:143) > at > org.apache.hadoop.hbase.master.assignment.AssignmentManager.isTableDisabled(AssignmentManager.java:346) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminServer.moveTables(RSGroupAdminServer.java:407) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.assignTableToGroup(RSGroupAdminEndpoint.java:447) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.postCreateTable(RSGroupAdminEndpoint.java:470) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:334) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:331) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost$ObserverOperationWithoutResult.callObserver(CoprocessorHost.java:540) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost.execOperation(CoprocessorHost.java:614) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost.postCreateTable(MasterCoprocessorHost.java:331) > at org.apache.hadoop.hbase.master.HMaster$3.run(HMaster.java:1768) > at > org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil.submitProcedure(MasterProcedureUtil.java:131) > at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1750) > at > org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:593) > at > org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:409) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:131) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304) > {code} > The logic should take potential TableStateNotFoundException into account. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (HBASE-20690) Moving table to target rsgroup needs to handle TableStateNotFoundException
[ https://issues.apache.org/jira/browse/HBASE-20690?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16583592#comment-16583592 ] Xu Cang commented on HBASE-20690: - created Jira HBASE-21066 to fix #isTableState I don't think it's good for caller to guess after receives "false" as result. > Moving table to target rsgroup needs to handle TableStateNotFoundException > -- > > Key: HBASE-20690 > URL: https://issues.apache.org/jira/browse/HBASE-20690 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu >Priority: Major > > This is related code: > {code} > if (targetGroup != null) { > for (TableName table: tables) { > if (master.getAssignmentManager().isTableDisabled(table)) { > LOG.debug("Skipping move regions because the table" + table + " > is disabled."); > continue; > } > {code} > In a stack trace [~rmani] showed me: > {code} > 2018-06-06 07:10:44,893 ERROR > [RpcServer.default.FPBQ.Fifo.handler=29,queue=2,port=2] > master.TableStateManager: Unable to get table demo:tbl1 state > org.apache.hadoop.hbase.master.TableStateManager$TableStateNotFoundException: > demo:tbl1 > at > org.apache.hadoop.hbase.master.TableStateManager.getTableState(TableStateManager.java:193) > at > org.apache.hadoop.hbase.master.TableStateManager.isTableState(TableStateManager.java:143) > at > org.apache.hadoop.hbase.master.assignment.AssignmentManager.isTableDisabled(AssignmentManager.java:346) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminServer.moveTables(RSGroupAdminServer.java:407) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.assignTableToGroup(RSGroupAdminEndpoint.java:447) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.postCreateTable(RSGroupAdminEndpoint.java:470) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:334) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:331) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost$ObserverOperationWithoutResult.callObserver(CoprocessorHost.java:540) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost.execOperation(CoprocessorHost.java:614) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost.postCreateTable(MasterCoprocessorHost.java:331) > at org.apache.hadoop.hbase.master.HMaster$3.run(HMaster.java:1768) > at > org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil.submitProcedure(MasterProcedureUtil.java:131) > at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1750) > at > org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:593) > at > org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:409) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:131) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304) > {code} > The logic should take potential TableStateNotFoundException into account. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (HBASE-20690) Moving table to target rsgroup needs to handle TableStateNotFoundException
[ https://issues.apache.org/jira/browse/HBASE-20690?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16585096#comment-16585096 ] Xu Cang commented on HBASE-20690: - introduced by: HBASE-19088 > Moving table to target rsgroup needs to handle TableStateNotFoundException > -- > > Key: HBASE-20690 > URL: https://issues.apache.org/jira/browse/HBASE-20690 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu >Priority: Major > > This is related code: > {code} > if (targetGroup != null) { > for (TableName table: tables) { > if (master.getAssignmentManager().isTableDisabled(table)) { > LOG.debug("Skipping move regions because the table" + table + " > is disabled."); > continue; > } > {code} > In a stack trace [~rmani] showed me: > {code} > 2018-06-06 07:10:44,893 ERROR > [RpcServer.default.FPBQ.Fifo.handler=29,queue=2,port=2] > master.TableStateManager: Unable to get table demo:tbl1 state > org.apache.hadoop.hbase.master.TableStateManager$TableStateNotFoundException: > demo:tbl1 > at > org.apache.hadoop.hbase.master.TableStateManager.getTableState(TableStateManager.java:193) > at > org.apache.hadoop.hbase.master.TableStateManager.isTableState(TableStateManager.java:143) > at > org.apache.hadoop.hbase.master.assignment.AssignmentManager.isTableDisabled(AssignmentManager.java:346) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminServer.moveTables(RSGroupAdminServer.java:407) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.assignTableToGroup(RSGroupAdminEndpoint.java:447) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.postCreateTable(RSGroupAdminEndpoint.java:470) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:334) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:331) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost$ObserverOperationWithoutResult.callObserver(CoprocessorHost.java:540) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost.execOperation(CoprocessorHost.java:614) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost.postCreateTable(MasterCoprocessorHost.java:331) > at org.apache.hadoop.hbase.master.HMaster$3.run(HMaster.java:1768) > at > org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil.submitProcedure(MasterProcedureUtil.java:131) > at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1750) > at > org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:593) > at > org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:409) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:131) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304) > {code} > The logic should take potential TableStateNotFoundException into account. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (HBASE-20690) Moving table to target rsgroup needs to handle TableStateNotFoundException
[ https://issues.apache.org/jira/browse/HBASE-20690?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16585320#comment-16585320 ] Xu Cang commented on HBASE-20690: - #moveTables calls #move which creates _MoveRegionProcedure_ which _calls #_preflightChecks to check if the table is enabled. If not, it throws TableNotFoundException too. So, the current solution is fine. No need to fix anything. This current approach also gives another chance to retrieve table state from MetaData later which might succeed. [~yuzhih...@gmail.com] So I suggest marking this one "won't fix" since the logic is fine here. > Moving table to target rsgroup needs to handle TableStateNotFoundException > -- > > Key: HBASE-20690 > URL: https://issues.apache.org/jira/browse/HBASE-20690 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu >Priority: Major > > This is related code: > {code} > if (targetGroup != null) { > for (TableName table: tables) { > if (master.getAssignmentManager().isTableDisabled(table)) { > LOG.debug("Skipping move regions because the table" + table + " > is disabled."); > continue; > } > {code} > In a stack trace [~rmani] showed me: > {code} > 2018-06-06 07:10:44,893 ERROR > [RpcServer.default.FPBQ.Fifo.handler=29,queue=2,port=2] > master.TableStateManager: Unable to get table demo:tbl1 state > org.apache.hadoop.hbase.master.TableStateManager$TableStateNotFoundException: > demo:tbl1 > at > org.apache.hadoop.hbase.master.TableStateManager.getTableState(TableStateManager.java:193) > at > org.apache.hadoop.hbase.master.TableStateManager.isTableState(TableStateManager.java:143) > at > org.apache.hadoop.hbase.master.assignment.AssignmentManager.isTableDisabled(AssignmentManager.java:346) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminServer.moveTables(RSGroupAdminServer.java:407) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.assignTableToGroup(RSGroupAdminEndpoint.java:447) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.postCreateTable(RSGroupAdminEndpoint.java:470) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:334) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:331) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost$ObserverOperationWithoutResult.callObserver(CoprocessorHost.java:540) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost.execOperation(CoprocessorHost.java:614) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost.postCreateTable(MasterCoprocessorHost.java:331) > at org.apache.hadoop.hbase.master.HMaster$3.run(HMaster.java:1768) > at > org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil.submitProcedure(MasterProcedureUtil.java:131) > at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1750) > at > org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:593) > at > org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:409) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:131) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304) > {code} > The logic should take potential TableStateNotFoundException into account. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (HBASE-20690) Moving table to target rsgroup needs to handle TableStateNotFoundException
[ https://issues.apache.org/jira/browse/HBASE-20690?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16585361#comment-16585361 ] Ted Yu commented on HBASE-20690: In TableStateManager, I only found one place where TableStateNotFoundException is caught (note: not TableNotFoundException). That is in {{migrateZooKeeper}} which is not related to the methods shown in the stack trace in the description. > Moving table to target rsgroup needs to handle TableStateNotFoundException > -- > > Key: HBASE-20690 > URL: https://issues.apache.org/jira/browse/HBASE-20690 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu >Priority: Major > > This is related code: > {code} > if (targetGroup != null) { > for (TableName table: tables) { > if (master.getAssignmentManager().isTableDisabled(table)) { > LOG.debug("Skipping move regions because the table" + table + " > is disabled."); > continue; > } > {code} > In a stack trace [~rmani] showed me: > {code} > 2018-06-06 07:10:44,893 ERROR > [RpcServer.default.FPBQ.Fifo.handler=29,queue=2,port=2] > master.TableStateManager: Unable to get table demo:tbl1 state > org.apache.hadoop.hbase.master.TableStateManager$TableStateNotFoundException: > demo:tbl1 > at > org.apache.hadoop.hbase.master.TableStateManager.getTableState(TableStateManager.java:193) > at > org.apache.hadoop.hbase.master.TableStateManager.isTableState(TableStateManager.java:143) > at > org.apache.hadoop.hbase.master.assignment.AssignmentManager.isTableDisabled(AssignmentManager.java:346) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminServer.moveTables(RSGroupAdminServer.java:407) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.assignTableToGroup(RSGroupAdminEndpoint.java:447) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.postCreateTable(RSGroupAdminEndpoint.java:470) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:334) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:331) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost$ObserverOperationWithoutResult.callObserver(CoprocessorHost.java:540) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost.execOperation(CoprocessorHost.java:614) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost.postCreateTable(MasterCoprocessorHost.java:331) > at org.apache.hadoop.hbase.master.HMaster$3.run(HMaster.java:1768) > at > org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil.submitProcedure(MasterProcedureUtil.java:131) > at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1750) > at > org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:593) > at > org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:409) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:131) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304) > {code} > The logic should take potential TableStateNotFoundException into account. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (HBASE-20690) Moving table to target rsgroup needs to handle TableStateNotFoundException
[ https://issues.apache.org/jira/browse/HBASE-20690?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16585376#comment-16585376 ] Xu Cang commented on HBASE-20690: - Correct. TableStateNotFound can be caused by TableNotFound (No entry for such table in Meta table). So this possibility is covered by the procedure itself. Based on a comment in #migrateZooKeeper {{"// This can happen; table exists but no TableState." }} Table state missing is somewhat acceptable. (?) >From this comment in #fixTableStates {{LOG.warn(tableName + " has no table state in hbase:meta, assuming ENABLED");}} We assume table is enabled when no table state found. This aligns with the decision we make in #moveTables. (Only ignore moving table when it's disabled. When enabled or unknown, we keep moving it.) > Moving table to target rsgroup needs to handle TableStateNotFoundException > -- > > Key: HBASE-20690 > URL: https://issues.apache.org/jira/browse/HBASE-20690 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu >Priority: Major > > This is related code: > {code} > if (targetGroup != null) { > for (TableName table: tables) { > if (master.getAssignmentManager().isTableDisabled(table)) { > LOG.debug("Skipping move regions because the table" + table + " > is disabled."); > continue; > } > {code} > In a stack trace [~rmani] showed me: > {code} > 2018-06-06 07:10:44,893 ERROR > [RpcServer.default.FPBQ.Fifo.handler=29,queue=2,port=2] > master.TableStateManager: Unable to get table demo:tbl1 state > org.apache.hadoop.hbase.master.TableStateManager$TableStateNotFoundException: > demo:tbl1 > at > org.apache.hadoop.hbase.master.TableStateManager.getTableState(TableStateManager.java:193) > at > org.apache.hadoop.hbase.master.TableStateManager.isTableState(TableStateManager.java:143) > at > org.apache.hadoop.hbase.master.assignment.AssignmentManager.isTableDisabled(AssignmentManager.java:346) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminServer.moveTables(RSGroupAdminServer.java:407) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.assignTableToGroup(RSGroupAdminEndpoint.java:447) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.postCreateTable(RSGroupAdminEndpoint.java:470) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:334) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:331) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost$ObserverOperationWithoutResult.callObserver(CoprocessorHost.java:540) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost.execOperation(CoprocessorHost.java:614) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost.postCreateTable(MasterCoprocessorHost.java:331) > at org.apache.hadoop.hbase.master.HMaster$3.run(HMaster.java:1768) > at > org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil.submitProcedure(MasterProcedureUtil.java:131) > at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1750) > at > org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:593) > at > org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:409) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:131) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304) > {code} > The logic should take potential TableStateNotFoundException into account. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (HBASE-20690) Moving table to target rsgroup needs to handle TableStateNotFoundException
[ https://issues.apache.org/jira/browse/HBASE-20690?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16587927#comment-16587927 ] Andrew Purtell commented on HBASE-20690: Is someone actively working on this? i.e. a patch? If so please update issue assignment. > Moving table to target rsgroup needs to handle TableStateNotFoundException > -- > > Key: HBASE-20690 > URL: https://issues.apache.org/jira/browse/HBASE-20690 > Project: HBase > Issue Type: Bug >Reporter: Ted Yu >Priority: Major > > This is related code: > {code} > if (targetGroup != null) { > for (TableName table: tables) { > if (master.getAssignmentManager().isTableDisabled(table)) { > LOG.debug("Skipping move regions because the table" + table + " > is disabled."); > continue; > } > {code} > In a stack trace [~rmani] showed me: > {code} > 2018-06-06 07:10:44,893 ERROR > [RpcServer.default.FPBQ.Fifo.handler=29,queue=2,port=2] > master.TableStateManager: Unable to get table demo:tbl1 state > org.apache.hadoop.hbase.master.TableStateManager$TableStateNotFoundException: > demo:tbl1 > at > org.apache.hadoop.hbase.master.TableStateManager.getTableState(TableStateManager.java:193) > at > org.apache.hadoop.hbase.master.TableStateManager.isTableState(TableStateManager.java:143) > at > org.apache.hadoop.hbase.master.assignment.AssignmentManager.isTableDisabled(AssignmentManager.java:346) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminServer.moveTables(RSGroupAdminServer.java:407) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.assignTableToGroup(RSGroupAdminEndpoint.java:447) > at > org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.postCreateTable(RSGroupAdminEndpoint.java:470) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:334) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost$12.call(MasterCoprocessorHost.java:331) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost$ObserverOperationWithoutResult.callObserver(CoprocessorHost.java:540) > at > org.apache.hadoop.hbase.coprocessor.CoprocessorHost.execOperation(CoprocessorHost.java:614) > at > org.apache.hadoop.hbase.master.MasterCoprocessorHost.postCreateTable(MasterCoprocessorHost.java:331) > at org.apache.hadoop.hbase.master.HMaster$3.run(HMaster.java:1768) > at > org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil.submitProcedure(MasterProcedureUtil.java:131) > at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1750) > at > org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:593) > at > org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java) > at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:409) > at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:131) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324) > at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304) > {code} > The logic should take potential TableStateNotFoundException into account. -- This message was sent by Atlassian JIRA (v7.6.3#76005)