Uploaded image for project: 'Hadoop YARN'
  1. Hadoop YARN
  2. YARN-2109

Fix TestRM to work with both schedulers

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.5.0
    • Component/s: scheduler
    • Labels:
    • Hadoop Flags:
      Reviewed

      Description

      testNMTokenSentForNormalContainer requires CapacityScheduler and was fixed in 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)

        Attachments

        1. YARN-2109.001.patch
          1 kB
          Anubhav Dhoot
        2. YARN-2109.001.patch
          1 kB
          Anubhav Dhoot

          Activity

            People

            • Assignee:
              kasha Karthik Kambatla
              Reporter:
              adhoot Anubhav Dhoot
            • Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: