MAPREDUCE-5744. Job hangs because RMContainerAllocator.preemptReduce() violates the comparator contract (Gera Shegalov via kasha)

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1565479 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Karthik Kambatla 2014-02-06 23:31:04 +00:00
parent 33641c649a
commit d082b122f9
2 changed files with 7 additions and 3 deletions

View File

@ -91,6 +91,10 @@ Release 2.3.0 - UNRELEASED
MAPREDUCE-5725. Make explicit that TestNetworkedJob relies on the Capacity MAPREDUCE-5725. Make explicit that TestNetworkedJob relies on the Capacity
Scheduler (Sandy Ryza) Scheduler (Sandy Ryza)
MAPREDUCE-5744. Job hangs because
RMContainerAllocator$AssignedRequests.preemptReduce() violates the
comparator contract (Gera Shegalov via kasha)
OPTIMIZATIONS OPTIMIZATIONS
MAPREDUCE-4680. Job history cleaner should only check timestamps of files in MAPREDUCE-4680. Job history cleaner should only check timestamps of files in

View File

@ -1123,9 +1123,9 @@ public class RMContainerAllocator extends RMContainerRequestor
new Comparator<TaskAttemptId>() { new Comparator<TaskAttemptId>() {
@Override @Override
public int compare(TaskAttemptId o1, TaskAttemptId o2) { public int compare(TaskAttemptId o1, TaskAttemptId o2) {
float p = getJob().getTask(o1.getTaskId()).getAttempt(o1).getProgress() - return Float.compare(
getJob().getTask(o2.getTaskId()).getAttempt(o2).getProgress(); getJob().getTask(o1.getTaskId()).getAttempt(o1).getProgress(),
return p >= 0 ? 1 : -1; getJob().getTask(o2.getTaskId()).getAttempt(o2).getProgress());
} }
}); });