private void handleInvalidResourceException(InvalidResourceRequestException e, RMAppAttempt rmAppAttempt) throws InvalidResourceRequestException { if (e.getInvalidResourceType() == LESS_THAN_ZERO || e.getInvalidResourceType() == GREATER_THEN_MAX_ALLOCATION) { rmAppAttempt.updateAMLaunchDiagnostics(e.getMessage()); } LOG.warn("Invalid resource ask by application " + rmAppAttempt.getAppAttemptId(), e); throw e; }
fail("Negative memory should not be accepted"); } catch (InvalidResourceRequestException e) { assertEquals(LESS_THAN_ZERO, e.getInvalidResourceType()); fail("Negative vcores should not be accepted"); } catch (InvalidResourceRequestException e) { assertEquals(LESS_THAN_ZERO, e.getInvalidResourceType()); fail("More than max memory should not be accepted"); } catch (InvalidResourceRequestException e) { assertEquals(GREATER_THEN_MAX_ALLOCATION, e.getInvalidResourceType()); fail("More than max vcores should not be accepted"); } catch (InvalidResourceRequestException e) { assertEquals(GREATER_THEN_MAX_ALLOCATION, e.getInvalidResourceType());
} catch (InvalidResourceRequestException e) { Assert.assertEquals(GREATER_THEN_MAX_ALLOCATION, e.getInvalidResourceType());
@Test(timeout = 3000000) public void testQueueLevelContainerAllocationFail() throws Exception { MockRM rm = new MockRM(configuration); rm.start(); // Register node1 MockNM nm1 = rm.registerNode("127.0.0.1:1234", 6 * GB); // Submit an application RMApp app1 = rm.submitApp(2 * GB, "queueA"); // kick the scheduling nm1.nodeHeartbeat(true); RMAppAttempt attempt1 = app1.getCurrentAppAttempt(); MockAM am1 = rm.sendAMLaunched(attempt1.getAppAttemptId()); am1.registerAppAttempt(); am1.addRequests(new String[] { "127.0.0.1" }, MEMORY_ALLOCATION, 1, 1); try { allocateResponse = am1.schedule(); // send the request Assert.fail(); } catch (Exception e) { Assert.assertTrue(e instanceof InvalidResourceRequestException); Assert.assertEquals( InvalidResourceRequestException.InvalidResourceType.GREATER_THEN_MAX_ALLOCATION, ((InvalidResourceRequestException) e).getInvalidResourceType()); } finally { rm.stop(); } }