Anubhav Dhoot created YARN-2109:
-----------------------------------

             Summary: TestRM fails some tests when some tests run with 
CapacityScheduler and some with FairScheduler
                 Key: YARN-2109
                 URL: https://issues.apache.org/jira/browse/YARN-2109
             Project: Hadoop YARN
          Issue Type: Bug
          Components: scheduler
            Reporter: Anubhav Dhoot


testNMTokenSentForNormalContainer requires CapacityScheduler and was fixed in 
[YARN-1846|https://issues.apache.org/jira/browse/YARN-1846] to explicitly set 
it to be CapacityScheduler. But if the default scheduler is set to 
FairScheduler then the rest of the tests that execute after this will fail with 
invalid cast exceptions when getting queuemetrics. This is based on test 
execution order as only the tests that execute after this test will fail. This 
is because the queuemetrics will be initialized by this test to QueueMetrics 
and shared by the subsequent tests. 

We can explicitly clear the metrics at the end of this test to fix this.
For example

java.lang.ClassCastException: 
org.apache.hadoop.yarn.server.resourcemanager.scheduler.QueueMetrics cannot be 
cast to 
org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FSQueueMetrics
        at 
org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FSQueueMetrics.forQueue(FSQueueMetrics.java:103)
        at 
org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler.reinitialize(FairScheduler.java:1275)
        at 
org.apache.hadoop.yarn.server.resourcemanager.ResourceManager$RMActiveServices.serviceInit(ResourceManager.java:418)
        at 
org.apache.hadoop.service.AbstractService.init(AbstractService.java:163)
        at 
org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.createAndInitActiveServices(ResourceManager.java:808)
        at 
org.apache.hadoop.yarn.server.resourcemanager.ResourceManager.serviceInit(ResourceManager.java:230)
        at 
org.apache.hadoop.service.AbstractService.init(AbstractService.java:163)
        at 
org.apache.hadoop.yarn.server.resourcemanager.MockRM.<init>(MockRM.java:90)
        at 
org.apache.hadoop.yarn.server.resourcemanager.MockRM.<init>(MockRM.java:85)
        at 
org.apache.hadoop.yarn.server.resourcemanager.MockRM.<init>(MockRM.java:81)
        at 
org.apache.hadoop.yarn.server.resourcemanager.TestRM.testNMToken(TestRM.java:232)




--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to