Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-22479

Release sycLatch too early in CreateTable() to get table state failed in postCreateTable

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Won't Fix
    • 2.2.0
    • None
    • master, rsgroup
    • None

    Description

      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?

      Attachments

        Activity

          People

            Xiaolin Ha Xiaolin Ha
            Xiaolin Ha Xiaolin Ha
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: