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

Master don't record right server version until new started region server call regionServerReport method

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.0.0
    • 2.0.1
    • proc-v2
    • None

    Description

      When a new region server started, it will call regionServerStartup first. Master will record this server as a new online server and may dispath RemoteProcedure to the new server. But master only record the server version when the new region server call regionServerReport method. Dispatch a new RemoteProcedure to this new regionserver will fail if version is not right.

        @Override
        protected void remoteDispatch(final ServerName serverName,
            final Set<RemoteProcedure> remoteProcedures) {
          final int rsVersion = master.getAssignmentManager().getServerVersion(serverName);
          if (rsVersion >= RS_VERSION_WITH_EXEC_PROCS) {
            LOG.trace("Using procedure batch rpc execution for serverName={} version={}",
              serverName, rsVersion);
            submitTask(new ExecuteProceduresRemoteCall(serverName, remoteProcedures));
          } else {
            LOG.info(String.format(
              "Fallback to compat rpc execution for serverName=%s version=%s",
              serverName, rsVersion));
            submitTask(new CompatRemoteProcedureResolver(serverName, remoteProcedures));
          }
        }
      

      The above code use version to resolve compatibility problem. So dispatch will work right for old version region server. But for RefreshPeerProcedure, it is new since hbase 2.0. So RefreshPeerProcedure don't need this. But the new region server version is not right, it will use CompatRemoteProcedureResolver for RefreshPeerProcedure, too. So the RefreshPeerProcedure can't be executed rightly.

      Attachments

        1. HBASE-20698.master.001.patch
          11 kB
          Guanghao Zhang
        2. HBASE-20698.master.002.patch
          4 kB
          Guanghao Zhang
        3. HBASE-20698.master.003.patch
          21 kB
          Guanghao Zhang
        4. HBASE-20698.master.addendum.patch
          4 kB
          Guanghao Zhang

        Issue Links

          Activity

            People

              zghao Guanghao Zhang
              zghao Guanghao Zhang
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: