From bff971eaf9da42a6c842ca466361e6e11b0b0cfe Mon Sep 17 00:00:00 2001 From: Kohsuke Kawaguchi Date: Mon, 14 Mar 2011 21:28:59 -0700 Subject: [PATCH] Revert "[FIXED JENKINS-8790] Build Queue Fails for Parameterized Matrix Projects." This reverts commit 65689f17e873747b849f7811f3599f4c237faf9d. --- core/src/main/java/hudson/model/Queue.java | 35 ++++------------------ 1 file changed, 5 insertions(+), 30 deletions(-) diff --git a/core/src/main/java/hudson/model/Queue.java b/core/src/main/java/hudson/model/Queue.java index c5c933d0f4..92b0206a4f 100644 --- a/core/src/main/java/hudson/model/Queue.java +++ b/core/src/main/java/hudson/model/Queue.java @@ -910,10 +910,9 @@ public class Queue extends ResourceController implements Saveable { BlockedItem p = itr.next(); if (!isBuildBlocked(p.task) && allowNewBuildableTask(p.task)) { // ready to be executed - if (makeBuildable(new BuildableItem(p))) { LOGGER.fine(p.task.getFullDisplayName() + " no longer blocked"); itr.remove(); - } + makeBuildable(new BuildableItem(p)); } } @@ -925,13 +924,10 @@ public class Queue extends ResourceController implements Saveable { waitingList.remove(top); Task p = top.task; - boolean isReady = false; if (!isBuildBlocked(p) && allowNewBuildableTask(p)) { - // maybe ready to be executed immediately - isReady = makeBuildable(new BuildableItem(top)); - } - if (isReady) { + // ready to be executed immediately LOGGER.fine(p.getFullDisplayName() + " ready to build"); + makeBuildable(new BuildableItem(top)); } else { // this can't be built now because another build is in progress // set this project aside. @@ -945,7 +941,7 @@ public class Queue extends ResourceController implements Saveable { s.sortBuildableItems(buildables); } - private boolean makeBuildable(BuildableItem p) { + private void makeBuildable(BuildableItem p) { if(Hudson.FLYWEIGHT_SUPPORT && p.task instanceof FlyweightTask && !ifBlockedByHudsonShutdown(p.task)) { ConsistentHash hash = new ConsistentHash(new Hash() { public String hash(Node node) { @@ -962,35 +958,14 @@ public class Queue extends ResourceController implements Saveable { Computer c = n.toComputer(); if (c==null || c.isOffline()) continue; if (lbl!=null && !lbl.contains(n)) continue; - - // Prevent multiple instances of a project's FlyWeightTask - // from all executing on the same computer at the same time. - // Without this logic, queuing-up several builds for a - // parameterized matrix project didn't work: parent builds - // weren't waiting their turn in the queue. - - List oneOffExecutors = c.getOneOffExecutors(); - for (OneOffExecutor ooe : oneOffExecutors) { - Queue.Executable exe = ooe.getCurrentExecutable(); - if (exe == null) - return false; - if (exe instanceof AbstractBuild) { - AbstractBuild b = (AbstractBuild) exe; - String running = b.getProject().getName(); - String toRun = p.task.getName(); - if (toRun.equals(running)) - return false; - } - } c.startFlyWeightTask(new WorkUnitContext(p).createWorkUnit(p.task)); - return true; + return; } // if the execution get here, it means we couldn't schedule it anywhere. // so do the scheduling like other normal jobs. } buildables.put(p.task,p); - return true; } public static boolean ifBlockedByHudsonShutdown(Task task) { -- GitLab