Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-8537

Node label queries fail when # labels > 2

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Critical
    • Resolution: Fixed
    • Labels:
      None
    • Environment:
      1.393 Solaris

      Description

      I have a matrix build which contains three slave labels. In the example below, they are (64&&solarisstudio&&solaris). The matrix builder cannot find a suitable node. It can find a suitable node if only two (any two) labels are used, but fails with three.

      Started by user anonymous
      Building on master
      Checkout:workspace / /var/lib/hudson/jobs/solaris/workspace - hudson.remoting.LocalChannel@158fa97
      Using strategy: Default
      Last Built Revision: Revision 3151e6760e9177d1f10eabc050453b93b241f45a (origin/master)
      Checkout:workspace / /var/lib/hudson/jobs/solaris/workspace - hudson.remoting.LocalChannel@158fa97
      GitAPI created
      Fetching changes from the remote Git repository
      Fetching upstream changes from git@git.kayasoft.com:$REPO
      [workspace] $ /opt/csw/bin/git fetch -t git@git.kayasoft.com:$REPO +refs/heads/:refs/remotes/origin/
      [workspace] $ /opt/csw/bin/git ls-tree HEAD
      [workspace] $ /opt/csw/bin/git rev-parse origin/master
      Commencing build of Revision 3151e6760e9177d1f10eabc050453b93b241f45a (origin/master)
      GitAPI created
      Checking out Revision 3151e6760e9177d1f10eabc050453b93b241f45a (origin/master)
      [workspace] $ /opt/csw/bin/git checkout -f 3151e6760e9177d1f10eabc050453b93b241f45a
      [workspace] $ /opt/csw/bin/git tag -a -f -m "Hudson Build #12" hudson-solaris-12
      Recording changes in branch origin/master
      [workspace] $ /opt/csw/bin/git whatchanged --no-abbrev -M --pretty=raw 3151e6760e9177d1f10eabc050453b93b241f45a..3151e6760e9177d1f10eabc050453b93b241f45a
      Triggering 64,solarisstudio,solaris,release
      Triggering 64,solarisstudio,solaris,debug
      Triggering 64,gcc,solaris,debug
      Triggering 32,solarisstudio,solaris,debug
      Triggering 32,gcc,solaris,release
      Triggering 64,gcc,solaris,release
      Triggering 32,solarisstudio,solaris,release
      Triggering 32,gcc,solaris,debug
      64,solarisstudio,solaris,release is still in the queue: All nodes of label '64&&solarisstudio&&solaris' are offline

        Activity

        Hide
        kayabek kayabek added a comment - - edited

        .

        Show
        kayabek kayabek added a comment - - edited .
        Hide
        mfawcett mfawcett added a comment -

        I'm having the same issue, but the bug isn't because of the
        multi-configuration, it's because the label filtering logic can't
        handle expressions such as:

        a && b && c

        You can verify this even in a "free-style software project" job. Just
        choose "Restrict where this project can be run" and enter in 3 valid
        labels, like windows && build && 32bit and it will say no node exists.
        Modify it so that it reads (windows && build) && 32bit and it will
        now run.

        The problem is, this workaround doesn't work for multi-configuration
        projects since we don't make the label expression, Hudson makes it based
        on the axes we define.

        Show
        mfawcett mfawcett added a comment - I'm having the same issue, but the bug isn't because of the multi-configuration, it's because the label filtering logic can't handle expressions such as: a && b && c You can verify this even in a "free-style software project" job. Just choose "Restrict where this project can be run" and enter in 3 valid labels, like windows && build && 32bit and it will say no node exists. Modify it so that it reads (windows && build) && 32bit and it will now run. The problem is, this workaround doesn't work for multi-configuration projects since we don't make the label expression, Hudson makes it based on the axes we define.
        Hide
        josephalevin josephalevin added a comment -

        I've just run into this issues as well. Is anyone working on this issue? If not, could you point me in the direction of the relevant code handling the label expression creation?

        Show
        josephalevin josephalevin added a comment - I've just run into this issues as well. Is anyone working on this issue? If not, could you point me in the direction of the relevant code handling the label expression creation?
        Hide
        mjmac mjmac added a comment -

        Seeing this on 1.403 myself.

        Show
        mjmac mjmac added a comment - Seeing this on 1.403 myself.
        Hide
        josephalevin josephalevin added a comment -

        I've submitted a pull request for this bug.

        https://github.com/jenkinsci/jenkins/pull/81

        Show
        josephalevin josephalevin added a comment - I've submitted a pull request for this bug. https://github.com/jenkinsci/jenkins/pull/81
        Hide
        scm_issue_link SCM/JIRA link daemon added a comment -

        Code changed in jenkins
        User: Kohsuke Kawaguchi
        Path:
        changelog.html
        core/src/main/grammar/labelExpr.g
        test/src/test/java/hudson/model/labels/LabelExpressionTest.java
        http://jenkins-ci.org/commit/jenkins/51562a2a92126299e30c7105ccd5d56eb36a708d
        Log:
        [FIXED JENKINS-8537] expanded the grammer to support binary operator sequence

        Compare: https://github.com/jenkinsci/jenkins/compare/b5756b1...51562a2

        Show
        scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Kohsuke Kawaguchi Path: changelog.html core/src/main/grammar/labelExpr.g test/src/test/java/hudson/model/labels/LabelExpressionTest.java http://jenkins-ci.org/commit/jenkins/51562a2a92126299e30c7105ccd5d56eb36a708d Log: [FIXED JENKINS-8537] expanded the grammer to support binary operator sequence Compare: https://github.com/jenkinsci/jenkins/compare/b5756b1...51562a2
        Hide
        dogfood dogfood added a comment -

        Integrated in jenkins_main_trunk #641
        [FIXED JENKINS-8537] expanded the grammer to support binary operator sequence

        Kohsuke Kawaguchi : 51562a2a92126299e30c7105ccd5d56eb36a708d
        Files :

        • test/src/test/java/hudson/model/labels/LabelExpressionTest.java
        • core/src/main/grammar/labelExpr.g
        • changelog.html
        Show
        dogfood dogfood added a comment - Integrated in jenkins_main_trunk #641 [FIXED JENKINS-8537] expanded the grammer to support binary operator sequence Kohsuke Kawaguchi : 51562a2a92126299e30c7105ccd5d56eb36a708d Files : test/src/test/java/hudson/model/labels/LabelExpressionTest.java core/src/main/grammar/labelExpr.g changelog.html
        Hide
        markewaite Mark Waite added a comment -

        I thought there was a work around that the expression could be written as

        ((a && b) && c)

        instead of using

        a && b && c

        Maybe that will help those users who are unable to upgrade to the repaired version.

        Show
        markewaite Mark Waite added a comment - I thought there was a work around that the expression could be written as ((a && b) && c) instead of using a && b && c Maybe that will help those users who are unable to upgrade to the repaired version.
        Hide
        scm_issue_link SCM/JIRA link daemon added a comment -

        Code changed in jenkins
        User: Kohsuke Kawaguchi
        Path:
        changelog.html
        core/src/main/grammar/labelExpr.g
        test/src/test/java/hudson/model/labels/LabelExpressionTest.java
        http://jenkins-ci.org/commit/jenkins/51562a2a92126299e30c7105ccd5d56eb36a708d
        Log:
        [FIXED JENKINS-8537] expanded the grammer to support binary operator sequence

        Show
        scm_issue_link SCM/JIRA link daemon added a comment - Code changed in jenkins User: Kohsuke Kawaguchi Path: changelog.html core/src/main/grammar/labelExpr.g test/src/test/java/hudson/model/labels/LabelExpressionTest.java http://jenkins-ci.org/commit/jenkins/51562a2a92126299e30c7105ccd5d56eb36a708d Log: [FIXED JENKINS-8537] expanded the grammer to support binary operator sequence

          People

          • Assignee:
            josephalevin josephalevin
            Reporter:
            kayabek kayabek
          • Votes:
            6 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: