Refine search
@Override public String toString() { return getShortDescription(); }
public CauseOfBlockage getCauseOfBlockage() { long diff = timestamp.getTimeInMillis() - System.currentTimeMillis(); if (diff >= 0) return CauseOfBlockage.fromMessage(Messages._Queue_InQuietPeriod(Util.getTimeSpanString(diff))); else return CauseOfBlockage.fromMessage(Messages._Queue_FinishedWaiting()); }
@Override public void print(TaskListener listener) { for (CauseOfBlockage delegate : uniqueReasons.values()) { delegate.print(listener); } }
public CauseOfBlockage getCauseOfBlockage() { Jenkins jenkins = Jenkins.getInstance(); if(isBlockedByShutdown(task)) return CauseOfBlockage.fromMessage(Messages._Queue_HudsonIsAboutToShutDown()); List<CauseOfBlockage> causesOfBlockage = transientCausesOfBlockage; Label label = getAssignedLabel(); List<Node> allNodes = jenkins.getNodes(); if (allNodes.isEmpty()) label = null; // no master/agent. pointless to talk about nodes if (label != null) { Set<Node> nodes = label.getNodes(); if (label.isOffline()) { if (nodes.size() != 1) return new BecauseLabelIsOffline(label); else return new BecauseNodeIsOffline(nodes.iterator().next()); } else { if (causesOfBlockage != null && label.getIdleExecutors() > 0) { return new CompositeCauseOfBlockage(causesOfBlockage); } if (nodes.size() != 1) return new BecauseLabelIsBusy(label); else return new BecauseNodeIsBusy(nodes.iterator().next()); } } else if (causesOfBlockage != null && new ComputerSet().getIdleExecutors() > 0) { return new CompositeCauseOfBlockage(causesOfBlockage); } else { return CauseOfBlockage.createNeedsMoreExecutor(Messages._Queue_WaitingForNextAvailableExecutor()); } }
@Issue("JENKINS-50561") @Test public void rateLimitBuilds() throws Exception { WorkflowRun b = expect("rateLimitBuilds") .go(); WorkflowJob p = b.getParent(); RateLimitBranchProperty.JobPropertyImpl prop = p.getProperty(RateLimitBranchProperty.JobPropertyImpl.class); assertNotNull(prop); assertEquals(1, prop.getCount()); assertEquals("day", prop.getDurationName()); assertFalse(prop.isUserBoost()); QueueTaskFuture<WorkflowRun> inQueue = p.scheduleBuild2(0); while (!Queue.getInstance().contains(p)) { Thread.yield(); } Queue.getInstance().maintain(); Queue.Item queued = Queue.getInstance().getItem(p); assertThat(queued.isBlocked(), is(true)); assertThat(queued.getCauseOfBlockage().getShortDescription().toLowerCase(), containsString("throttle")); inQueue.cancel(true); }
int approvedCount; boolean found; Queue queue = Queue.getInstance(); synchronized (recent) { approvedCount = 0; } else { if (now - details.when > ONE_SECOND_OF_NANOS || queue.getItem(task.getId()) instanceof Queue.LeftItem) { i.remove(); } else { return CauseOfBlockage.fromMessage(Messages._ThrottleComputationQueueTaskDispatcher_MaxConcurrentIndexing());
@Override protected void printWaitingMessage(TaskListener listener) { Queue.Item item = Queue.getInstance().getItem(itemID); String message = Messages.ExecutorPickle_waiting_to_resume(task.getFullDisplayName()); if (item == null) { // ??? listener.getLogger().println(message); return; } CauseOfBlockage causeOfBlockage = item.getCauseOfBlockage(); if (causeOfBlockage != null) { listener.getLogger().print(message + ": "); causeOfBlockage.print(listener); // note that in case of Messages.Queue_Unknown for WaitingItem this is not very helpful } else { listener.getLogger().println(message); } } @Override public boolean cancel(boolean mayInterruptIfRunning) {
assertTrue("Should have returned a WaitingForReplication as CauseOfBlockage", cause instanceof WaitingForReplication); assertTrue(cause.getShortDescription().contains("slave1")); assertTrue(cause.getShortDescription().contains("slave2")); assertNotNull("Item should be tagged with replicationFailedAction", replicationFailedAction); assertTrue(replicationFailedAction.getReason().contains("slave2")); verify(queueMock, times(0)).maintain();
makeBuildable(p); // TODO whatever this is for, the return value is being ignored, so this does nothing at all String taskDisplayName = LOGGER.isLoggable(Level.FINEST) ? p.task.getFullDisplayName() : null; LOGGER.log(Level.FINEST, "Current blocked item: {0}", taskDisplayName); CauseOfBlockage causeOfBlockage = getCauseOfBlockageForItem(p); if (causeOfBlockage == null) { LOGGER.log(Level.FINEST, Runnable r = makeBuildable(new BuildableItem(p)); if (r != null) { p.leave(this); } else { LOGGER.log(Level.FINEST, "Item {0} was unable to be made a buildable and is now a blocked item.", topTaskDisplayName); new BlockedItem(top, CauseOfBlockage.fromMessage(Messages._Queue_HudsonIsAboutToShutDown())).enter(this);
public CauseOfBlockage getCauseOfBlockage() { ResourceActivity r = getBlockingActivity(task); if (r != null) { if (r == task) // blocked by itself, meaning another build is in progress return CauseOfBlockage.fromMessage(Messages._Queue_InProgress()); return CauseOfBlockage.fromMessage(Messages._Queue_BlockedBy(r.getDisplayName())); } return task.getCauseOfBlockage(); } }
/** * * Checks if the given task knows the reasons to be blocked or it needs some unavailable resources * * @param task the task. * @return the reason of blockage if it exists null otherwise. */ @CheckForNull private CauseOfBlockage getCauseOfBlockageForTask(Task task) { CauseOfBlockage causeOfBlockage = task.getCauseOfBlockage(); if (causeOfBlockage != null) { return task.getCauseOfBlockage(); } if (!canRun(task.getResourceList())) { ResourceActivity r = getBlockingActivity(task); if (r != null) { if (r == task) // blocked by itself, meaning another build is in progress return CauseOfBlockage.fromMessage(Messages._Queue_InProgress()); return CauseOfBlockage.fromMessage(Messages._Queue_BlockedBy(r.getDisplayName())); } } return null; }
public CauseOfBlockage getCauseOfBlockage() { Hudson hudson = Hudson.getInstance(); if(ifBlockedByHudsonShutdown(task)) return CauseOfBlockage.fromMessage(Messages._Queue_HudsonIsAboutToShutDown()); Label label = task.getAssignedLabel(); if (hudson.getNodes().isEmpty()) label = null; // no master/slave. pointless to talk about nodes if (label != null) { if (label.isOffline()) { Set<Node> nodes = label.getNodes(); if (nodes.size() != 1) return new BecauseLabelIsOffline(label); else return new BecauseNodeIsOffline(nodes.iterator().next()); } } if(label==null) return CauseOfBlockage.fromMessage(Messages._Queue_WaitingForNextAvailableExecutor()); Set<Node> nodes = label.getNodes(); if (nodes.size() != 1) return new BecauseLabelIsBusy(label); else return new BecauseNodeIsBusy(nodes.iterator().next()); }
for (BuildableItem item : queue.getBuildableItems()) { Task queuedTask = item.task; if (task == queuedTask) { if (queue.isPending(queuedTask)) { String queuedTaskHash = getEmulatorConfigHashForTask(node, queuedTask); if (desiredHash.equals(queuedTaskHash)) { return CauseOfBlockage.fromMessage(Messages._WAITING_FOR_EMULATOR()); return CauseOfBlockage.fromMessage(Messages._NO_EXECUTORS_ON_NODE()); return CauseOfBlockage.fromMessage(Messages._WAITING_FOR_EMULATOR());
private CauseOfBlockage canRunImpl(Task task, ThrottleJobProperty tjp, List<String> pipelineCategories) { final Jenkins jenkins = Jenkins.getActiveInstance(); if (!shouldBeThrottled(task, tjp) && pipelineCategories.isEmpty()) { return null; } if (jenkins.getQueue().isPending(task)) { return CauseOfBlockage.fromMessage(Messages._ThrottleQueueTaskDispatcher_BuildPending()); } if (tjp != null) { if (tjp.getThrottleOption().equals("project")) { if (tjp.getMaxConcurrentTotal().intValue() > 0) { int maxConcurrentTotal = tjp.getMaxConcurrentTotal().intValue(); int totalRunCount = buildsOfProjectOnAllNodes(task); if (totalRunCount >= maxConcurrentTotal) { return CauseOfBlockage.fromMessage(Messages._ThrottleQueueTaskDispatcher_MaxCapacityTotal(totalRunCount)); } } } else if (tjp.getThrottleOption().equals("category")) { return throttleCheckForCategoriesAllNodes(jenkins, tjp.getCategories()); } } else if (!pipelineCategories.isEmpty()) { return throttleCheckForCategoriesAllNodes(jenkins, pipelineCategories); } return null; }
@Override public CauseOfBlockage getCauseOfBlockage() { Hudson hudson = Hudson.getInstance(); if (ifBlockedByHudsonShutdown(task)) { return CauseOfBlockage.fromMessage(Messages._Queue_HudsonIsAboutToShutDown()); return CauseOfBlockage.createNeedsMoreExecutor(Messages._Queue_WaitingForNextAvailableExecutor());
CauseOfBlockage causeOfBlockage = getCauseOfBlockageForTask(i.task); if (causeOfBlockage != null) { return causeOfBlockage; return CauseOfBlockage.fromMessage(Messages._Queue_InProgress());
assertTrue("Should have returned a WaitingForReplication as CauseOfBlockage", cause instanceof WaitingForReplication); assertTrue(cause.getShortDescription().contains("slaveA")); assertTrue(cause.getShortDescription().contains("slaveB")); assertTrue(cause.getShortDescription().contains("slaveC")); assertTrue("Should have returned a WaitingForReplication as CauseOfBlockage", cause instanceof WaitingForReplication); assertTrue(cause.getShortDescription().contains("slaveA")); assertFalse(cause.getShortDescription().contains("slaveB")); assertTrue(cause.getShortDescription().contains("slaveC")); assertTrue("Should have returned a WaitingForReplication as CauseOfBlockage", cause instanceof WaitingForReplication); assertFalse(cause.getShortDescription().contains("slaveA")); assertFalse(cause.getShortDescription().contains("slaveB")); assertTrue(cause.getShortDescription().contains("slaveC")); assertNull("Item should not be tagged with replicationFailedAction", item.getAction(ReplicationFailedAction.class)); verify(queueMock, times(1)).maintain();
makeBuildable(p); // TODO whatever this is for, the return value is being ignored, so this does nothing at all String taskDisplayName = LOGGER.isLoggable(Level.FINEST) ? p.task.getFullDisplayName() : null; LOGGER.log(Level.FINEST, "Current blocked item: {0}", taskDisplayName); CauseOfBlockage causeOfBlockage = getCauseOfBlockageForItem(p); if (causeOfBlockage == null) { LOGGER.log(Level.FINEST, Runnable r = makeBuildable(new BuildableItem(p)); if (r != null) { p.leave(this); } else { LOGGER.log(Level.FINEST, "Item {0} was unable to be made a buildable and is now a blocked item.", topTaskDisplayName); new BlockedItem(top, CauseOfBlockage.fromMessage(Messages._Queue_HudsonIsAboutToShutDown())).enter(this);
public CauseOfBlockage getCauseOfBlockage() { ResourceActivity r = getBlockingActivity(task); if (r != null) { if (r == task) // blocked by itself, meaning another build is in progress return CauseOfBlockage.fromMessage(Messages._Queue_InProgress()); return CauseOfBlockage.fromMessage(Messages._Queue_BlockedBy(r.getDisplayName())); } return task.getCauseOfBlockage(); } }
/** * * Checks if the given task knows the reasons to be blocked or it needs some unavailable resources * * @param task the task. * @return the reason of blockage if it exists null otherwise. */ @CheckForNull private CauseOfBlockage getCauseOfBlockageForTask(Task task) { CauseOfBlockage causeOfBlockage = task.getCauseOfBlockage(); if (causeOfBlockage != null) { return task.getCauseOfBlockage(); } if (!canRun(task.getResourceList())) { ResourceActivity r = getBlockingActivity(task); if (r != null) { if (r == task) // blocked by itself, meaning another build is in progress return CauseOfBlockage.fromMessage(Messages._Queue_InProgress()); return CauseOfBlockage.fromMessage(Messages._Queue_BlockedBy(r.getDisplayName())); } } return null; }