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

jenkins-job-builder matrix job combination-filter causes 500 response

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Major Major
    • matrix-project-plugin
    • None
    • jenkins 1.638
      matrix-project-plugin 1.6

      I have the following minimal jenkins-job-builder configuration:

      - job:
          name: testjob
          project-type: matrix
          execution-strategy:
            combination-filter:
      

      On uploading, this cause the following exception on the client:

      jenkins.JenkinsException: Error in request. Possibly authentication failed [500]: Server Error
      

      In the server log, the following is seen:

      WARNING: Error while serving http://localhost:50080/jenkins/job/testjob/config.xml
      java.lang.reflect.InvocationTargetException
              at sun.reflect.GeneratedMethodAccessor193.invoke(Unknown Source)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
              at java.lang.reflect.Method.invoke(Method.java:606)
              at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:298)
              at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:161)
              at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:96)
              at org.kohsuke.stapler.MetaClass$1.doDispatch(MetaClass.java:121)
              at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
              at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
              at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
              at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:249)
              at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
              at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:746)
              at org.kohsuke.stapler.Stapler.invoke(Stapler.java:876)
              at org.kohsuke.stapler.Stapler.invoke(Stapler.java:649)
              at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
              at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:686)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1494)
              at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:132)
              at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:123)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
              at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:86)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
              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 jenkins.security.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:117)
              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 jenkins.security.BasicHeaderProcessor.success(BasicHeaderProcessor.java:140)
              at jenkins.security.BasicHeaderProcessor.doFilter(BasicHeaderProcessor.java:82)
              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:67)
              at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:87)
              at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
              at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
              at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
              at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:81)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
              at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1474)
              at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
              at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
              at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533)
              at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
              at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
              at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
              at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
              at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
              at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
              at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
              at org.eclipse.jetty.server.Server.handle(Server.java:370)
              at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
              at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:960)
              at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1021)
              at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:865)
              at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
              at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
              at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
              at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
              at winstone.BoundedExecutorService$1.run(BoundedExecutorService.java:77)
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
              at java.lang.Thread.run(Thread.java:745)
      Caused by: groovy.lang.MissingPropertyException: No such property: None for class: groovy.lang.Binding
              at groovy.lang.Binding.getVariable(Binding.java:62)
              at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onGetProperty(SandboxInterceptor.java:141)
              at org.kohsuke.groovy.sandbox.impl.Checker$4.call(Checker.java:241)
              at org.kohsuke.groovy.sandbox.impl.Checker.checkedGetProperty(Checker.java:238)
              at org.kohsuke.groovy.sandbox.impl.Checker$checkedGetProperty.callStatic(Unknown Source)
              at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallStatic(CallSiteArray.java:50)
              at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:157)
              at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:177)
              at Script1.run(Script1.groovy:1)
              at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.run(GroovySandbox.java:139)
              at hudson.matrix.FilterScript.evaluate(FilterScript.java:45)
              at hudson.matrix.FilterScript.apply(FilterScript.java:85)
              at hudson.matrix.Combination.evalGroovyExpression(Combination.java:101)
              at hudson.matrix.Combination.evalGroovyExpression(Combination.java:91)
              at hudson.matrix.MatrixProject.rebuildConfigurations(MatrixProject.java:641)
              at hudson.matrix.MatrixProject.onLoad(MatrixProject.java:508)
              at hudson.model.AbstractItem$2.call(AbstractItem.java:658)
              at hudson.model.AbstractItem$2.call(AbstractItem.java:656)
              at hudson.model.Items.whileUpdatingByXml(Items.java:96)
              at hudson.model.AbstractItem.updateByXml(AbstractItem.java:656)
              at hudson.model.AbstractItem.doConfigDotXml(AbstractItem.java:610)
              ... 73 more
      

      If I remove the combination-filter entry, then it works.

      I can also configure a combination filter manually through the UI, and it works.

      There have been several similar bug reports related to the splitting out of the matrix job plugin. The exceptions look similar, but the reports appear to be about the jobs not working, whereas this report is about the job creation through the REST API not working.

          [JENKINS-31765] jenkins-job-builder matrix job combination-filter causes 500 response

          Antoine Musso added a comment -

          The empty combination filter causes JJB to emit None (bad.xml below):

          {{
          $ colordiff -u good.xml bad.xml
          — good.xml 2016-03-03 10:21:24.000000000 +0100
          +++ bad.xml 2016-03-03 10:21:42.000000000 +0100
          @@ -7,7 +7,7 @@
          <executionStrategy class="hudson.matrix.DefaultMatrixExecutionStrategyImpl">
          <runSequentially>false</runSequentially>
          </executionStrategy>

          • <combinationFilter/>
            + <combinationFilter>None</combinationFilter>
            <axes/>
            <actions/>
            <description><!-- Managed by Jenkins Job Builder --></description>
            }}

          Seems like a bug in JJB

          Antoine Musso added a comment - The empty combination filter causes JJB to emit None (bad.xml below): {{ $ colordiff -u good.xml bad.xml — good.xml 2016-03-03 10:21:24.000000000 +0100 +++ bad.xml 2016-03-03 10:21:42.000000000 +0100 @@ -7,7 +7,7 @@ <executionStrategy class="hudson.matrix.DefaultMatrixExecutionStrategyImpl"> <runSequentially>false</runSequentially> </executionStrategy> <combinationFilter/> + <combinationFilter>None</combinationFilter> <axes/> <actions/> <description><!-- Managed by Jenkins Job Builder --></description> }} Seems like a bug in JJB

          Naresh G added a comment -

          We are facing an similar issue where we just have specified execution strategy as Classic.
          INFO:jenkins_jobs.local_yaml:Including file '../commons/executeJenkinsProvisioningScript.sh' from path '/apps/pcehr/jenkins/jenkins_home/jobs/SeedJob/workspace/jobs/odi'
          INFO:jenkins_jobs.builder:Number of jobs generated: 1
          INFO:jenkins_jobs.builder:Creating jenkins job EnvironmentJvmCheck_test
          Traceback (most recent call last):
          File "/opt/rh/python27/root/usr/bin/jenkins-jobs", line 10, in <module>
          sys.exit(main())
          File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/jenkins_jobs/cmd.py", line 191, in main
          execute(options, config)
          File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/jenkins_jobs/cmd.py", line 372, in execute
          n_workers=options.n_workers)
          File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/jenkins_jobs/builder.py", line 412, in update_jobs
          parallelize=p_params)
          File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/jenkins_jobs/parallel.py", line 112, in parallelized
          return func(*args, **kwargs)
          File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/jenkins_jobs/builder.py", line 435, in parallel_update_job
          self.jenkins.update_job(job.name, job.output().decode('utf-8'))
          File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/jenkins_jobs/parallel.py", line 112, in parallelized
          return func(*args, **kwargs)
          File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/jenkins_jobs/builder.py", line 164, in update_job
          self.jenkins.create_job(job_name, xml)
          File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/jenkins/_init_.py", line 855, in create_job
          config_xml.encode('utf-8'), DEFAULT_HEADERS))
          File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/jenkins/_init_.py", line 361, in jenkins_open
          e.code, e.msg)
          jenkins.JenkinsException: Error in request. Possibly authentication failed [500]: Internal Server Error
          Build step 'Execute shell' marked build as failure
          Finished: FAILURE
          Any help would be much appreciated.

          Naresh G added a comment - We are facing an similar issue where we just have specified execution strategy as Classic. INFO:jenkins_jobs.local_yaml:Including file '../commons/executeJenkinsProvisioningScript.sh' from path '/apps/pcehr/jenkins/jenkins_home/jobs/SeedJob/workspace/jobs/odi' INFO:jenkins_jobs.builder:Number of jobs generated: 1 INFO:jenkins_jobs.builder:Creating jenkins job EnvironmentJvmCheck_test Traceback (most recent call last): File "/opt/rh/python27/root/usr/bin/jenkins-jobs", line 10, in <module> sys.exit(main()) File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/jenkins_jobs/cmd.py", line 191, in main execute(options, config) File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/jenkins_jobs/cmd.py", line 372, in execute n_workers=options.n_workers) File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/jenkins_jobs/builder.py", line 412, in update_jobs parallelize=p_params) File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/jenkins_jobs/parallel.py", line 112, in parallelized return func(*args, **kwargs) File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/jenkins_jobs/builder.py", line 435, in parallel_update_job self.jenkins.update_job(job.name, job.output().decode('utf-8')) File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/jenkins_jobs/parallel.py", line 112, in parallelized return func(*args, **kwargs) File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/jenkins_jobs/builder.py", line 164, in update_job self.jenkins.create_job(job_name, xml) File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/jenkins/_ init _.py", line 855, in create_job config_xml.encode('utf-8'), DEFAULT_HEADERS)) File "/opt/rh/python27/root/usr/lib/python2.7/site-packages/jenkins/_ init _.py", line 361, in jenkins_open e.code, e.msg) jenkins.JenkinsException: Error in request. Possibly authentication failed [500] : Internal Server Error Build step 'Execute shell' marked build as failure Finished: FAILURE Any help would be much appreciated.

            kohsuke Kohsuke Kawaguchi
            petere Peter Eisentraut
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated: