code: public void nodeTimeout(String nodeName) {
      if (nodeRestarter != null) {
        nodeRestarter.delete(nodeName);
      }
      Set<String> sessions = nodeManager.getNodeSessions(nodeName);
      Set<ClusterNode.GrantId> grantsToRevoke = nodeManager.deleteNode(nodeName);
      if (grantsToRevoke == null) {
        return;
      }
      handleRevokedGrants(nodeName, grantsToRevoke);
      handleDeadNode(nodeName, sessions);
      scheduler.notifyScheduler();
    }
docs: This is an internal api called to tell the cluster manager that a
  a particular node seems dysfunctional and that it should be removed
  from the cluster.
  
  @param nodeName Node to be removed