[ 
https://issues.apache.org/jira/browse/MAPREDUCE-5744?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13894584#comment-13894584
 ] 

Hudson commented on MAPREDUCE-5744:
-----------------------------------

SUCCESS: Integrated in Hadoop-Mapreduce-trunk #1691 (See 
[https://builds.apache.org/job/Hadoop-Mapreduce-trunk/1691/])
MAPREDUCE-5744. Job hangs because RMContainerAllocator.preemptReduce() violates 
the comparator contract (Gera Shegalov via kasha) (kasha: 
http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1565478)
* /hadoop/common/trunk/hadoop-mapreduce-project/CHANGES.txt
* 
/hadoop/common/trunk/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/rm/RMContainerAllocator.java


> Job hangs because RMContainerAllocator$AssignedRequests.preemptReduce() 
> violates the comparator contract
> --------------------------------------------------------------------------------------------------------
>
>                 Key: MAPREDUCE-5744
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-5744
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>    Affects Versions: 2.0.5-alpha
>            Reporter: Sangjin Lee
>            Assignee: Gera Shegalov
>            Priority: Blocker
>             Fix For: 2.3.0
>
>         Attachments: MAPREDUCE-5744.v02.patch
>
>
> We ran into a situation where tasks are not getting assigned because 
> RMContainerAllocator$AssignedRequests.preemptReduce() fails repeatedly with 
> the following exception:
> {code}
> 2014-02-06 16:43:45,183 ERROR [RMCommunicator Allocator] 
> org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator: ERROR IN 
> CONTACTING RM.
> java.lang.IllegalArgumentException: Comparison method violates its general 
> contract!
>      at java.util.TimSort.mergeLo(TimSort.java:747)
>      at java.util.TimSort.mergeAt(TimSort.java:483)
>      at java.util.TimSort.mergeCollapse(TimSort.java:408)
>      at java.util.TimSort.sort(TimSort.java:214)
>      at java.util.TimSort.sort(TimSort.java:173)
>      at java.util.Arrays.sort(Arrays.java:659)
>      at java.util.Collections.sort(Collections.java:217)
>      at 
> org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator$AssignedRequests.preemptReduce(RMContainerAllocator.java:1106)
>      at 
> org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator.preemptReducesIfNeeded(RMContainerAllocator.java:416)
>      at 
> org.apache.hadoop.mapreduce.v2.app.rm.RMContainerAllocator.heartbeat(RMContainerAllocator.java:230)
>      at 
> org.apache.hadoop.mapreduce.v2.app.rm.RMCommunicator$1.run(RMCommunicator.java:252)
>      at java.lang.Thread.run(Thread.java:744)
> {code}
> It is because the comparator that's defined in this method does not abide by 
> the contract, specifically if p == 0.
> Comparator.compare(): 
> http://docs.oracle.com/javase/7/docs/api/java/util/Comparator.html#compare(T, 
> T)



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to