private static void throwInvalidResourceException(Resource reqResource, Resource maxAllowedAllocation, String reqResourceName, InvalidResourceType invalidResourceType) throws InvalidResourceRequestException { final String message; if (invalidResourceType == InvalidResourceType.LESS_THAN_ZERO) { message = String.format(LESS_THAN_ZERO_RESOURCE_MESSAGE_TEMPLATE, reqResourceName, reqResource); } else if (invalidResourceType == InvalidResourceType.GREATER_THEN_MAX_ALLOCATION) { message = String.format(GREATER_THAN_MAX_RESOURCE_MESSAGE_TEMPLATE, reqResourceName, reqResource, maxAllowedAllocation, ResourceUtils.getResourceTypesMaximumAllocation()); } else if (invalidResourceType == InvalidResourceType.UNKNOWN) { message = String.format(UNKNOWN_REASON_MESSAGE_TEMPLATE, reqResourceName, reqResource); } else { throw new IllegalArgumentException(String.format( "InvalidResourceType argument should be either " + "%s, %s or %s", InvalidResourceType.LESS_THAN_ZERO, InvalidResourceType.GREATER_THEN_MAX_ALLOCATION, InvalidResourceType.UNKNOWN)); } throw new InvalidResourceRequestException(message, invalidResourceType); }
if (resReq.getCapability().getMemory() < 0 || resReq.getCapability().getMemory() > maximumResource.getMemory()) { throw new InvalidResourceRequestException("Invalid resource request" + ", requested memory < 0" + ", or requested memory > max configured" resReq.getCapability().getVirtualCores() > maximumResource.getVirtualCores()) { throw new InvalidResourceRequestException("Invalid resource request" + ", requested virtual cores < 0" + ", or requested virtual cores > max configured" throw new InvalidResourceRequestException( "Invailid resource request, queue=" + queueInfo.getQueueName() + " specified node label expression in a " throw new InvalidResourceRequestException( "Invailid resource request, queue=" + queueInfo.getQueueName() + " specified more than one node label " if (!checkQueueLabelExpression(queueInfo.getAccessibleNodeLabels(), labelExp, rmContext)) { throw new InvalidResourceRequestException("Invalid resource request" + ", queue=" + queueInfo.getQueueName()
if (resReq.getCapability().getMemory() < 0 || resReq.getCapability().getMemory() > maximumResource.getMemory()) { throw new InvalidResourceRequestException("Invalid resource request" + ", requested memory < 0" + ", or requested memory > max configured" resReq.getCapability().getVirtualCores() > maximumResource.getVirtualCores()) { throw new InvalidResourceRequestException("Invalid resource request" + ", requested virtual cores < 0" + ", or requested virtual cores > max configured" throw new InvalidResourceRequestException( "Invailid resource request, queue=" + queueInfo.getQueueName() + " specified node label expression in a " throw new InvalidResourceRequestException( "Invailid resource request, queue=" + queueInfo.getQueueName() + " specified more than one node label " if (!checkQueueLabelExpression(queueInfo.getAccessibleNodeLabels(), labelExp, rmContext)) { throw new InvalidResourceRequestException("Invalid resource request" + ", queue=" + queueInfo.getQueueName()
ResourceRequest.ANY, submissionContext.getResource(), 1)); } else { throw new InvalidResourceRequestException("Invalid resource request, " + "no resources requested"); anyReq = amReq; } else { throw new InvalidResourceRequestException("Invalid resource " + "request, only one resource request with " + ResourceRequest.ANY + " is allowed"); throw new InvalidResourceRequestException("Invalid resource request, " + "no resource request specified with " + ResourceRequest.ANY);
/** * Sanity check increase/decrease request, and return * SchedulerContainerResourceChangeRequest according to given * UpdateContainerRequest. * * <pre> * - Returns non-null value means validation succeeded * - Throw exception when any other error happens * </pre> */ private SchedContainerChangeRequest createSchedContainerChangeRequest( UpdateContainerRequest request, boolean increase) throws YarnException { ContainerId containerId = request.getContainerId(); RMContainer rmContainer = getRMContainer(containerId); if (null == rmContainer) { String msg = "Failed to get rmContainer for " + (increase ? "increase" : "decrease") + " request, with container-id=" + containerId; throw new InvalidResourceRequestException(msg); } SchedulerNode schedulerNode = getSchedulerNode(rmContainer.getAllocatedNode()); return new SchedContainerChangeRequest( this.rmContext, schedulerNode, rmContainer, request.getCapability()); }
+ " original=" + originalResource + " containerId=" + containerId; throw new InvalidResourceRequestException(msg); + " original=" + originalResource + " containerId=" + containerId; throw new InvalidResourceRequestException(msg); + containerId + " is more than node's total resource=" + rmNode.getTotalCapability(); throw new InvalidResourceRequestException(msg);