code: private synchronized void retireMap(TaskInProgress tip) {
      if (runningMapCache == null) {
        LOG.warn("Running cache for maps missing!! "
                 + "Job details are missing.");
        return;
      }
  
      String[] splitLocations = tip.getSplitLocations();
  
      // Remove the TIP from the list for running non-local maps
      if (splitLocations.length == 0) {
        nonLocalRunningMaps.remove(tip);
        return;
      }
  
      // Remove from the running map caches
      for(String host: splitLocations) {
        Node node = jobtracker.getNode(host);
  
        for (int j = 0; j < maxLevel; ++j) {
          Set<TaskInProgress> hostMaps = runningMapCache.get(node);
          if (hostMaps != null) {
            hostMaps.remove(tip);
            if (hostMaps.size() == 0) {
              runningMapCache.remove(node);
            }
          }
          node = node.getParent();
        }
      }
    }
docs: Remove a map TIP from the lists for running maps.
  Called when a map fails/completes (note if a map is killed,
  it won't be present in the list since it was completed earlier)
  @param tip the tip that needs to be retired