[ 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=20000] > 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)