code: public void cancelGrant(String nodeName, String sessionId, int requestId) {
      ClusterNode node = nameToNode.get(nodeName);
      if (node == null) {
        LOG.warn("Canceling grant for non-existent node: " + nodeName);
        return;
      }
      synchronized (node) {
        if (node.deleted) {
          LOG.warn("Canceling grant for deleted node: " + nodeName);
          return;
        }
        String hoststr = node.getClusterNodeInfo().getAddress().getHost();
        if (!canAllowNode(hoststr)) {
          LOG.warn("Canceling grant for excluded node: " + hoststr);
          return;
        }
        ResourceRequestInfo req = node.getRequestForGrant(sessionId, requestId);
        if (req != null) {
          ResourceRequest unitReq = Utilities.getUnitResourceRequest(
            req.getType());
          boolean previouslyRunnable = node.checkForGrant(unitReq, resourceLimit);
          node.cancelGrant(sessionId, requestId);
          loadManager.decrementLoad(req.getType());
          if (!previouslyRunnable && node.checkForGrant(unitReq, resourceLimit)) {
            RunnableIndices r = typeToIndices.get(req.getType());
            if (!faultManager.isBlacklisted(node.getName(), req.getType())) {
              r.addRunnable(node);
            }
          }
        }
      }
    }
docs: Cancel grant on a node
  @param nodeName the node the grant is on
  @param sessionId the session the grant was given to
  @param requestId the request this grant satisfied