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

Filtering on node label throws Groovy error

    XMLWordPrintable

Details

    Description

      Hi,

      I have some nodes labelled linux. I have a job that needs to run on these nodes, so I set this configuration filter:

      label==linux

      When I save this configuration, Java barfs all over me with the traceback at the bottom.

      I have this regardless of whether I specify label=="linux" or foo==bar; only "label" in the first line changes.

      Please let me know any environmental information you need.

      Thanks!

      javax.servlet.ServletException: groovy.lang.MissingPropertyException: No such property: label for class: Script1
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:615)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:658)
      at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:573)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:658)
      at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:241)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:573)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:658)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:487)
      at org.kohsuke.stapler.Stapler.service(Stapler.java:164)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:45)
      at winstone.ServletConfiguration.execute(ServletConfiguration.java:248)
      at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)
      at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:376)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:95)
      at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:58)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98)
      at hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:66)
      at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:98)
      at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:87)
      at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
      at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
      at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:85)
      at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
      at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
      at hudson.security.UnwrapSecurityExceptionFilter.doFilter(UnwrapSecurityExceptionFilter.java:51)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:142)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:173)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at jenkins.security.ApiTokenFilter.doFilter(ApiTokenFilter.java:63)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
      at hudson.security.HttpSessionContextIntegrationFilter2.doFilter(HttpSessionContextIntegrationFilter2.java:66)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
      at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
      at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
      at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
      at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
      at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:50)
      at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
      at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
      at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
      at winstone.FilterConfiguration.execute(FilterConfiguration.java:194)
      at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:366)
      at winstone.RequestDispatcher.forward(RequestDispatcher.java:331)
      at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:215)
      at winstone.RequestHandlerThread.run(RequestHandlerThread.java:138)
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
      at java.util.concurrent.FutureTask.run(FutureTask.java:166)
      at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
      at java.lang.Thread.run(Thread.java:679)
      Caused by: groovy.lang.MissingPropertyException: No such property: label for class: Script1
      at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:50)
      at org.codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty(PogoGetPropertySite.java:49)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGroovyObjectGetProperty(AbstractCallSite.java:231)
      at Script1$_run_closure1.doCall(Script1.groovy:1)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:616)
      at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
      at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
      at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
      at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:884)
      at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:66)
      at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:141)
      at Script1$_run_closure1.doCall(Script1.groovy)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:616)
      at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
      at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
      at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:272)
      at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:884)
      at groovy.lang.Closure.call(Closure.java:412)
      at groovy.lang.Closure.call(Closure.java:406)
      at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:106)
      at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.access$400(GroovyCategorySupport.java:64)
      at org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:246)
      at org.codehaus.groovy.runtime.DefaultGroovyMethods.use(DefaultGroovyMethods.java:359)
      at org.codehaus.groovy.runtime.dgm$882.invoke(Unknown Source)
      at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoMetaMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:308)
      at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:52)
      at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:46)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133)
      at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:145)
      at Script1.run(Script1.groovy:1)
      at groovy.lang.GroovyShell.evaluate(GroovyShell.java:580)
      at groovy.lang.GroovyShell.evaluate(GroovyShell.java:618)
      at groovy.lang.GroovyShell.evaluate(GroovyShell.java:589)
      at hudson.matrix.Combination.evalGroovyExpression(Combination.java:126)
      at hudson.matrix.MatrixProject.rebuildConfigurations(MatrixProject.java:607)
      at hudson.matrix.MatrixProject.submit(MatrixProject.java:822)
      at hudson.model.Job.doConfigSubmit(Job.java:1046)
      at hudson.model.AbstractProject.doConfigSubmit(AbstractProject.java:723)
      at sun.reflect.GeneratedMethodAccessor1637.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:616)
      at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:288)
      at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:151)
      at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:90)
      at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:111)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:573)
      ... 64 more

      Generated by Stapler at Thu Jan 31 16:08:27 PST 2013

      Attachments

        Issue Links

          Activity

            kay_abendroth Kay Abendroth added a comment -

            I get the same error. Any news on this issue?

            My matrix configuration looks like this:

            Label expression name Label Expression
            operating_system linux
            operating_system mac
            browser firefox
            browser safari

            Combination filter producing the error:

            !(label=="linux" && browser=="safari")
            
            kay_abendroth Kay Abendroth added a comment - I get the same error. Any news on this issue? My matrix configuration looks like this: Label expression name Label Expression operating_system linux operating_system mac browser firefox browser safari Combination filter producing the error: !(label=="linux" && browser=="safari")
            kay_abendroth Kay Abendroth added a comment -

            We're running Jenkins 1.505.

            kay_abendroth Kay Abendroth added a comment - We're running Jenkins 1.505.
            kay_abendroth Kay Abendroth added a comment -

            Worked for me: As I used Label expression as axis on my matrix I needed to update my Combination filter to look like this:

            !(operating_system=="linux" && browser=="safari")
            
            kay_abendroth Kay Abendroth added a comment - Worked for me: As I used Label expression as axis on my matrix I needed to update my Combination filter to look like this: !(operating_system=="linux" && browser=="safari")

            I still cannot restrict these to a label - with the same error as above. Is there something I am missing? I am simply setting the combination filter to label=="REL" - which is a valid label on 8 of my machines. Any assistance would be helpful.

            hmckinno Heather McKinnon added a comment - I still cannot restrict these to a label - with the same error as above. Is there something I am missing? I am simply setting the combination filter to label=="REL" - which is a valid label on 8 of my machines. Any assistance would be helpful.

            I found the perfect resolution to my issue - which was to restrict builds to run only on a pool of 8 of my many servers, but not each matrix on each node. Adding the NodeLabel Parameter Plugin, and added the label as a parameter. Restricts the matrix builds to only that pool. I understand that my error was because I did not have a label axis.

            hmckinno Heather McKinnon added a comment - I found the perfect resolution to my issue - which was to restrict builds to run only on a pool of 8 of my many servers, but not each matrix on each node. Adding the NodeLabel Parameter Plugin, and added the label as a parameter. Restricts the matrix builds to only that pool. I understand that my error was because I did not have a label axis.
            holgerf H. Friedrich added a comment -

            seems related, but 16587 is even worse since it does not allow even properly formatted inputs

            holgerf H. Friedrich added a comment - seems related, but 16587 is even worse since it does not allow even properly formatted inputs
            holgerf H. Friedrich added a comment -

            I have to problem with Jenkins 1.561 running on Debian 7.5 64bit. My job worked before, but can not be loaded on Jenkins startup. I had remove the condition from the xml config.
            The job is there, but so far I was not able to write the condition in a way Jenkins accepts (error page after saving the config).

            holgerf H. Friedrich added a comment - I have to problem with Jenkins 1.561 running on Debian 7.5 64bit. My job worked before, but can not be loaded on Jenkins startup. I had remove the condition from the xml config. The job is there, but so far I was not able to write the condition in a way Jenkins accepts (error page after saving the config).
            adrien Adrien CLERC added a comment -

            I upgraded from 1.520 to 1.561 and two of my jobs using a filter on a user-defined axis can't load. I got the same error.

            adrien Adrien CLERC added a comment - I upgraded from 1.520 to 1.561 and two of my jobs using a filter on a user-defined axis can't load. I got the same error.

            Also hitting this issue since I upgraded from 1.557 to 1.561

            chrix Christophe Cornu added a comment - Also hitting this issue since I upgraded from 1.557 to 1.561

            Actually I also see it after downgrading back to 1.557. I just started using that feature in 1.561 so this issue might have been there earlier.

            chrix Christophe Cornu added a comment - Actually I also see it after downgrading back to 1.557. I just started using that feature in 1.561 so this issue might have been there earlier.
            wael Wael Darwich added a comment -

            I am getting the same error after upgrading to 1.562!

            wael Wael Darwich added a comment - I am getting the same error after upgrading to 1.562!
            nerd2 Sam Lancia added a comment - is this fixed by https://github.com/jenkinsci/matrix-project-plugin/pull/1 ?

            Yes. Version 1.1 of the matrix-project plugin contains the fix.

            mc1arke Michael Clarke added a comment - Yes. Version 1.1 of the matrix-project plugin contains the fix.

            People

              mc1arke Michael Clarke
              paulnath Paul Nathan
              Votes:
              9 Vote for this issue
              Watchers:
              12 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: