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

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 2.2.0
    • Fix Version/s: None
    • Component/s: master, rsgroup
    • Labels:
      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

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

              Dates

              • Created:
                Updated: