code: public Task forceNewReduceTaskForTip(String taskTrackerName, String hostName,
        TaskInProgress forcedTip) {
      synchronized (lockObject) {
        Task result = obtainTaskCleanupTask(taskTrackerName, forcedTip);
        if (result != null) {
          return result;
        }
  
        removeMatchingTipUnprotectedUnconditional(nonRunningMaps, forcedTip);
        LOG.info("Running task " + forcedTip.getTIPId() + " on "
            + taskTrackerName + "(" + hostName + ")");
        scheduleReduceUnprotected(forcedTip);
        result = forcedTip.getTaskToRun(taskTrackerName);
        if (result != null) {
          addRunningTaskToTIPUnprotected(forcedTip, result.getTaskID(),
              taskTrackerName, hostName, true);
          // Handle cleanup task
          setJobCleanupTaskState(result);
        }
        return result;
      }
    }
docs: Registers new task attempt for given task
  @param taskTrackerName name of destination tracker
  @param hostName hostname of tracker
  @param forcedTip task in progress to run
  @return task to run