Xiaolin Ha created HBASE-22479:
----------------------------------

             Summary: Release sycLatch too early in CreateTable() to get table 
state failed in postCreateTable
                 Key: HBASE-22479
                 URL: https://issues.apache.org/jira/browse/HBASE-22479
             Project: HBase
          Issue Type: Bug
          Components: master, rsgroup
    Affects Versions: 2.2.0
            Reporter: Xiaolin Ha
            Assignee: Xiaolin Ha


SycLatch will be released as soon as prepared create table.
But if in postCreateTable we need to get some info of the created table, it 
will be failed.
This can be reproduced by calling createTable() on clusters enabling rsgroup.
ERROR log is as follows,

2019-05-10,11:28:07,394 ERROR 
[RpcServer.default.FPBQ.Fifo.handler=254,queue=14,port=57900] 
org.apache.hadoop.hbase.master.TableStateManager: Unable to get table 
work:error1 state
org.apache.hadoop.hbase.master.TableStateManager$TableStateNotFoundException: 
work:error1
        at 
org.apache.hadoop.hbase.master.TableStateManager.getTableState(TableStateManager.java:215)
        at 
org.apache.hadoop.hbase.master.TableStateManager.isTableState(TableStateManager.java:147)
        at 
org.apache.hadoop.hbase.master.assignment.AssignmentManager.isTableDisabled(AssignmentManager.java:365)
        at 
org.apache.hadoop.hbase.rsgroup.RSGroupAdminServer.moveTables(RSGroupAdminServer.java:411)
        at 
org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.assignTableToGroup(RSGroupAdminEndpoint.java:444)
        at 
org.apache.hadoop.hbase.rsgroup.RSGroupAdminEndpoint.postCreateTable(RSGroupAdminEndpoint.java:467)
        at 
org.apache.hadoop.hbase.master.MasterCoprocessorHost$13.call(MasterCoprocessorHost.java:351)
        at 
org.apache.hadoop.hbase.master.MasterCoprocessorHost$13.call(MasterCoprocessorHost.java:348)
        at 
org.apache.hadoop.hbase.coprocessor.CoprocessorHost$ObserverOperationWithoutResult.callObserver(CoprocessorHost.java:551)
        at 
org.apache.hadoop.hbase.coprocessor.CoprocessorHost.execOperation(CoprocessorHost.java:625)
        at 
org.apache.hadoop.hbase.master.MasterCoprocessorHost.postCreateTable(MasterCoprocessorHost.java:348)
        at org.apache.hadoop.hbase.master.HMaster$4.run(HMaster.java:2082)
        at 
org.apache.hadoop.hbase.master.procedure.MasterProcedureUtil.submitProcedure(MasterProcedureUtil.java:134)
        at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:2065)
        at 
org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:681)
        at 
org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java)
        at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:413)
        at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:132)
        at 
org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:338)
        at 
org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:318)


I think sycLatch of createTable should be released after postCreate in CTP. Any 
suggestions or concerns?





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

Reply via email to