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

Invalid refspec injected by multiple scms plugin

    Details

    • Type: Bug
    • Status: Open (View Workflow)
    • Priority: Minor
    • Resolution: Unresolved
    • Component/s: multiple-scms-plugin
    • Labels:
      None
    • Environment:
      Dockerized Jenkins 2.150.2 (pulled from docker repo)
      Browser: Chrome (mac) Version 72.0.3626.81
      (see attached systeminfo)
    • Similar Issues:

      Description

      Just recently started seeing this when I attempt to edit projects. This thing is when I go into edit the configuration the git portion updates itself automatically briefly displaying some red text and then resetting one of my git entries in my project. I've tried clearing the wildcards in my entries and saving but it still won't apply and gives the same stack trace every time.

      I verified I was running the latest plugins and LTS version to make sure it wasn't a bug in older software.

      When I set everything back to how it was and hit save or if I just hit apply with making no changes I get this exception error.

      I tried reverting to an older build version in case some change made to the entry caused this but it continues to occur even if I revert to an older version.

      A problem occurred while processing the request. Please check our bug tracker to see if a similar problem has already been reported. If it is already reported, please vote and put a comment on it to let us gauge the impact of the problem. If you think this is a new issue, please file a new issue. When you file an issue, make sure to add the entire stack trace, along with the version of Jenkins and relevant plugins. The users list might be also useful in understanding what has happened.

      Stack trace

      java.lang.IllegalArgumentException: Invalid refspec refs/remotes//master/ at org.eclipse.jgit.transport.RefSpec.checkValid(RefSpec.java:539) at org.eclipse.jgit.transport.RefSpec.<init>(RefSpec.java:192) at org.eclipse.jgit.transport.RefSpec.<init>(RefSpec.java:226) at org.eclipse.jgit.lib.DefaultTypedConfigGetter.getRefSpecs(DefaultTypedConfigGetter.java:302) at org.eclipse.jgit.lib.Config.getRefSpecs(Config.java:502) at org.eclipse.jgit.transport.RemoteConfig.<init>(RemoteConfig.java:195) at org.eclipse.jgit.transport.RemoteConfig.getAllRemoteConfigs(RemoteConfig.java:124) at hudson.plugins.git.GitSCM$DescriptorImpl.createRepositoryConfigurations(GitSCM.java:1637) Caused: hudson.plugins.git.GitException: Error creating repositories at hudson.plugins.git.GitSCM$DescriptorImpl.createRepositoryConfigurations(GitSCM.java:1639) at hudson.plugins.git.GitSCM.updateFromUserData(GitSCM.java:264) at hudson.plugins.git.GitSCM.<init>(GitSCM.java:214) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.kohsuke.stapler.RequestImpl.invokeConstructor(RequestImpl.java:529) at org.kohsuke.stapler.RequestImpl.instantiate(RequestImpl.java:784) at org.kohsuke.stapler.RequestImpl.access$200(RequestImpl.java:83) at org.kohsuke.stapler.RequestImpl$TypePair.convertJSON(RequestImpl.java:678) at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:478) at org.kohsuke.stapler.RequestImpl.bindJSON(RequestImpl.java:474) at hudson.model.Descriptor.newInstance(Descriptor.java:597) Caused: java.lang.Error: Failed to instantiate class hudson.plugins.git.GitSCM from {"userRemoteConfigs":

      {"url":"git@github.com:############/mpos.git","credentialsId":"191ba7e5-bb4c-47c1-85db-8a7455f86187","name":"*/master","refspec":""}

      ,"branches":{"name":"*/master"},"":"auto","stapler-class":"hudson.plugins.git.GitSCM","$class":"hudson.plugins.git.GitSCM"} at hudson.model.Descriptor.newInstance(Descriptor.java:605) at org.jenkinsci.plugins.multiplescms.MultiSCM$DescriptorImpl.readItem(MultiSCM.java:271) at org.jenkinsci.plugins.multiplescms.MultiSCM$DescriptorImpl.newInstance(MultiSCM.java:253) at org.jenkinsci.plugins.multiplescms.MultiSCM$DescriptorImpl.newInstance(MultiSCM.java:210) at hudson.DescriptorExtensionList.newInstanceFromRadioList(DescriptorExtensionList.java:142) at hudson.scm.SCMS.parseSCM(SCMS.java:59) at hudson.model.AbstractProject.submit(AbstractProject.java:1802) at hudson.model.Project.submit(Project.java:225) at hudson.model.Job.doConfigSubmit(Job.java:1350) at hudson.model.AbstractProject.doConfigSubmit(AbstractProject.java:772) at java.lang.invoke.MethodHandle.invokeWithArguments(MethodHandle.java:627) at org.kohsuke.stapler.Function$MethodFunction.invoke(Function.java:396) 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:537) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:739) Caused: javax.servlet.ServletException at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:789) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:870) at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:282) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:739) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:870) at org.kohsuke.stapler.MetaClass$4.doDispatch(MetaClass.java:282) at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:58) at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:739) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:870) at org.kohsuke.stapler.Stapler.invoke(Stapler.java:668) 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:865) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1655) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:154) at org.jenkinsci.plugins.ssegateway.Endpoint$SSEListenChannelFilter.doFilter(Endpoint.java:243) at hudson.util.PluginServletFilter$1.doFilter(PluginServletFilter.java:151) at hudson.plugins.audit_trail.AuditTrailFilter.doFilter(AuditTrailFilter.java:92) 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:1642) at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:99) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) 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:1642) at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:49) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) at hudson.util.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:82) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) at org.kohsuke.stapler.DiagnosticThreadNameFilter.doFilter(DiagnosticThreadNameFilter.java:30) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533) 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:1595) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242) 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:503) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260) 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:118) 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)

        Attachments

          Activity

          Hide
          markewaite Mark Waite added a comment -

          The text in the stack trace is accurate, though not as helpful as it should be. Somewhere in your job definition (likely in the "Advanced" section of the repository definition) there is an invalid refspec. The help for the refspec field provides examples of valid refspecs, as does the command line git documentation.

          I'm leaving this bug report open because a stack trace from a user typed configuration error is ugly and should be replaced by much better message to the user. You can resolve the problem by using a valid refspec, but the user interface needs improvement so that others don't encounter the same problem.

          Thanks for the bug report. Reply with a comment if correcting the refspec is able to resolve the problem (or not).

          Show
          markewaite Mark Waite added a comment - The text in the stack trace is accurate, though not as helpful as it should be. Somewhere in your job definition (likely in the "Advanced" section of the repository definition) there is an invalid refspec. The help for the refspec field provides examples of valid refspecs, as does the command line git documentation. I'm leaving this bug report open because a stack trace from a user typed configuration error is ugly and should be replaced by much better message to the user. You can resolve the problem by using a valid refspec, but the user interface needs improvement so that others don't encounter the same problem. Thanks for the bug report. Reply with a comment if correcting the refspec is able to resolve the problem (or not).
          Hide
          k2et Kevin Johnsrud added a comment -

          Sort of, I actually now think this is an issue with the multiple SCMs plugin that I'm using. It's auto-populating some advanced settings and/or reading config information. When I remove that it works fine. As soon as I add it back, even with correct settings it throws the same stack trace. I know this plugin in deprecated so I guess it's time to move to pipelines for some of these simple projects to support multiple SCMs.

          Show
          k2et Kevin Johnsrud added a comment - Sort of, I actually now think this is an issue with the multiple SCMs plugin that I'm using. It's auto-populating some advanced settings and/or reading config information. When I remove that it works fine. As soon as I add it back, even with correct settings it throws the same stack trace. I know this plugin in deprecated so I guess it's time to move to pipelines for some of these simple projects to support multiple SCMs.

            People

            • Assignee:
              Unassigned
              Reporter:
              k2et Kevin Johnsrud
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated: