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

github-branch-source plugin throws InvocationTargetException when creating

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Minor Minor

      The git-branch-source plugin seems to have broken with the latest update (from 2.5.3 -> 2.5.7)

      Steps to reproduce:

      • create a Multibranch Pipeline job
      • select GitHub as the Branch Source

      The update also brought about another change in the jenkins-jobs-dsl script definition, requiring the following additions to the github dsl block

          repositoryUrl('')
          configuredByUrl(false)
      

      This is the exception I am seeing in the log.

      Sep 11, 2019 9:25:49 PM org.eclipse.jetty.server.handler.ContextHandler$Context log
      WARNING: Error while serving https://jenkins.company.com/job/seed-job/descriptorByName/org.jenkinsci.plugins.github_branch_source.GitHubSCMSource/checkCredentialsId
      java.lang.reflect.InvocationTargetException
      	at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:400)
      	at org.kohsuke.stapler.Function$InstanceFunction.invoke(Function.java:408)
      	at org.kohsuke.stapler.interceptor.RequirePOST$Processor.invoke(RequirePOST.java:77)
      	at org.kohsuke.stapler.PreInvokeInterceptedFunction.invoke(PreInvokeInterceptedFunction.java:26)
      	at org.kohsuke.stapler.Function.bindAndInvoke(Function.java:212)
      	at org.kohsuke.stapler.Function.bindAndInvokeAndServeResponse(Function.java:145)
      	at org.kohsuke.stapler.MetaClass$11.doDispatch(MetaClass.java:535)
      	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
      	at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:280)
      	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
      	at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:280)
      	at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58)
      	at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:747)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:878)
      	at org.kohsuke.stapler.Stapler.invoke(Stapler.java:676)
      	at org.kohsuke.stapler.Stapler.service(Stapler.java:238)
      	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
      	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:873)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1623)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154)
      	at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:246)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
      	at io.jenkins.blueocean.auth.jwt.impl.JwtAuthenticationFilter.doFilter(JwtAuthenticationFilter.java:61)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
      	at com.cloudbees.jenkins.support.slowrequest.SlowRequestFilter.doFilter(SlowRequestFilter.java:37)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
      	at io.jenkins.blueocean.ResourceCacheControl.doFilter(ResourceCacheControl.java:134)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
      	at hudson.plugins.greenballs.GreenBallFilter.doFilter(GreenBallFilter.java:59)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
      	at jenkins.metrics.impl.MetricsFilter.doFilter(MetricsFilter.java:125)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
      	at jenkins.telemetry.impl.UserLanguages$AcceptLanguageFilter.doFilter(UserLanguages.java:128)
      	at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151)
      	at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:157)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
      	at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:99)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
      	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.doFilter(BasicHeaderProcessor.java:93)
      	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:90)
      	at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:171)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
      	at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
      	at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
      	at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30)
      	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1610)
      	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540)
      	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
      	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524)
      	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
      	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
      	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1701)
      	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
      	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345)
      	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
      	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)
      	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1668)
      	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
      	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247)
      	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
      	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
      	at org.eclipse.jetty.server.Server.handle(Server.java:502)
      	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370)
      	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:267)
      	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
      	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
      	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
      	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
      	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
      	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
      	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
      	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
      	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
      	at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
      	at java.lang.Thread.run(Thread.java:748)
      Caused by: java.lang.LinkageError: com/cloudbees/plugins/credentials/CredentialsMatchers
      	at org.jenkinsci.plugins.github_branch_source.Connector.githubScanCredentialsMatcher(Connector.java:465)
      	at org.jenkinsci.plugins.github_branch_source.Connector.listScanCredentials(Connector.java:151)
      	at org.jenkinsci.plugins.github_branch_source.Connector.checkScanCredentials(Connector.java:183)
      	at org.jenkinsci.plugins.github_branch_source.GitHubSCMSource$DescriptorImpl.doCheckCredentialsId(GitHubSCMSource.java:1991)
      	at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627)
      	at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:396)
      	... 95 more
      

          [JENKINS-59321] github-branch-source plugin throws InvocationTargetException when creating

          Steve Boardwell added a comment - - edited

          Can confirm that setting all 3 fields and configureByUrl to true works with the job-dsl plugin.

          Some strange happenings going on with job-dsl though.

          • Leaving repoOwner or repository blank and they will be missing from the repositoryUrl in the generated jobs config page. In fact, the repositoryUrl is overwritten, regardless of what you put in there.
          • The configuredByUrl is also disregarded it seems. The "Repository HTTPS URL" is always activated in the generated job, regardless of the boolean value.

          Steve Boardwell added a comment - - edited Can confirm that setting all 3 fields and configureByUrl to true works with the job-dsl plugin. Some strange happenings going on with job-dsl though. Leaving repoOwner or repository blank and they will be missing from the repositoryUrl in the generated jobs config page. In fact, the repositoryUrl is overwritten, regardless of what you put in there. The configuredByUrl is also disregarded it seems. The "Repository HTTPS URL" is always activated in the generated job, regardless of the boolean value.

          Liam Newman added a comment -

          lostinberlin 

          Seem like we should have some JobDSL tests as part of this plugin's build.   Would you be willing to make some?  This is likely the only way to avoid (or at least be aware of) future breaking changes.

          Liam Newman added a comment - lostinberlin   Seem like we should have some JobDSL tests as part of this plugin's build.   Would you be willing to make some?  This is likely the only way to avoid (or at least be aware of) future breaking changes.

          bitwiseman,
          I would love to help, just not sure when I will be able to get around to it. I think now that it might, in fact, be a problem with the job-dsl-plugin itself (looking at my last comment). Let me have a look over the next few days and get back to you.

          Steve Boardwell added a comment - bitwiseman , I would love to help, just not sure when I will be able to get around to it. I think now that it might, in fact, be a problem with the job-dsl-plugin itself (looking at my last comment). Let me have a look over the next few days and get back to you.

          Rick added a comment -

          Rick added a comment - A related PR is here  https://github.com/jenkinsci/github-branch-source-plugin/pull/244

          Liam Newman added a comment -

          surenpi 

          Thanks for that!

          lostinberlin 

          "The "Repository HTTPS URL" is always activated in the generated job" - you mean in the UI, yes, that is by design. We do not want people to use the old way, but we've kept it available for now.

          From an API perspective, things are more complex.  I'm not sure the JobDSL ramifications were fully considered when making the change. 

          I've dug into this a bit more and I now understand what is going on.  We changed the DataboundConstructor and it now requires a bunch of extra parameters which screws up the JobDSL.

          Essentially, we started requiring more and different parameters on the constructor, so they are all required.  
          This is definitely a bug and it definitely needs to be fixed in this plugin.  I don't have time to do it now, but it is on my list. 

          Liam Newman added a comment - surenpi   Thanks for that! lostinberlin   "The "Repository HTTPS URL" is always activated in the generated job" - you mean in the UI, yes, that is by design. We do not want people to use the old way, but we've kept it available for now. From an API perspective, things are more complex.  I'm not sure the JobDSL ramifications were fully considered when making the change.  I've dug into this a bit more and I now understand what is going on.  We changed the DataboundConstructor and it now requires a bunch of extra parameters which screws up the JobDSL. Essentially, we started requiring more and different parameters on the constructor, so they are all required.   This is definitely a bug and it definitely needs to be fixed in this plugin.  I don't have time to do it now, but it is on my list. 

          Rick added a comment -

          Rick added a comment - https://github.com/jenkinsci/github-branch-source-plugin/pull/244

          Liam Newman added a comment -

          This is not fixed yet. 

          Liam Newman added a comment - This is not fixed yet. 

          Liam Newman added a comment - - edited

          lostinberlin

          Here's a PR that I believe addresses your issue.  Sorry for the wait. 

          https://github.com/jenkinsci/github-branch-source-plugin/pull/254 

          Once it passes CI and there is a link to an "incremental" in the PR, would you be willing to give it a try? 

          (Here it is: https://repo.jenkins-ci.org/incrementals/org/jenkins-ci/plugins/github-branch-source/2.5.9-rc941.09ba8e411aa7/ )

          Liam Newman added a comment - - edited lostinberlin Here's a PR that I believe addresses your issue.  Sorry for the wait.  https://github.com/jenkinsci/github-branch-source-plugin/pull/254   Once it passes CI and there is a link to an "incremental" in the PR, would you be willing to give it a try?  (Here it is:  https://repo.jenkins-ci.org/incrementals/org/jenkins-ci/plugins/github-branch-source/2.5.9-rc941.09ba8e411aa7/  )

          Hi bitwiseman, it's my turn to apologise for the wait (I even saw you in Lisbon - sorry I didn't say hi).

          I have installed the incremental in the PR and it works as expected.

          Steve Boardwell added a comment - Hi bitwiseman , it's my turn to apologise for the wait (I even saw you in Lisbon - sorry I didn't say hi). I have installed the incremental in the PR and it works as expected.

          Liam Newman added a comment -

          lostinberlin
          I tried to get this into v2.6.0, but are were some unexpected snags. It is on the list of things to do, but I'll have to circle back to it.

          Liam Newman added a comment - lostinberlin I tried to get this into v2.6.0, but are were some unexpected snags. It is on the list of things to do, but I'll have to circle back to it.

            bitwiseman Liam Newman
            lostinberlin Steve Boardwell
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated: