@Override
  public GrantResponse grant(RpcController controller, GrantRequest request)
    throws ServiceException {
    try {
      server.checkInitialized();
      if (server.cpHost != null && hasAccessControlServiceCoprocessor(server.cpHost)) {
        final UserPermission perm =
          ShadedAccessControlUtil.toUserPermission(request.getUserPermission());
        boolean mergeExistingPermissions = request.getMergeExistingPermissions();
        server.cpHost.preGrant(perm, mergeExistingPermissions);
        try (Table table = server.getConnection().getTable(PermissionStorage.ACL_TABLE_NAME)) {
          PermissionStorage.addUserPermission(getConfiguration(), perm, table,
            mergeExistingPermissions);
        }
        server.cpHost.postGrant(perm, mergeExistingPermissions);
        return GrantResponse.getDefaultInstance();
      } else {
        throw new DoNotRetryIOException(
          new UnsupportedOperationException(AccessController.class.getName() + " is not loaded"));
      }
    } catch (IOException ioe) {
      throw new ServiceException(ioe);
    }
  }
Bypass specified procedure to completion. Procedure is marked completed but no actual work is
done from the current state/ step onwards. Parents of the procedure are also marked for bypass.
NOTE: this is a dangerous operation and may be used to unstuck buggy procedures. This may leave
system in incoherent state. This may need to be followed by some cleanup steps/ actions by
operator.
@return BypassProcedureToCompletionResponse indicating success or failure
hbase-server/src/main/java/org/apache/hadoop/hbase/master/MasterRpcServices.java