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

SVN checkout failed due authentication error

    Details

    • Similar Issues:

      Description

      Subversion plugin does not accept my credentials. The authentication method is user name/password and the SVN server use the network domain to authenticate an user.

      In order to provide more info, I attach one success log, retrieved after checkout the source code from an external tool (Tortoise SVN) and also attach one error log, retrieved after Jenkins tried to checkout the source code for a job.

      From success and fail log comparison, I could observe that Security ID is not sent by Subversion plugin, but I can not assume that this is the root cause of the issue.

      Finally, there is the full stack trace shown by Jenkins when I click in "show details" link in the Job configuration screen:

      Unable to access https://<PROJECT_URL> : svn: E200015: OPTIONS <PROJECT_PATH> failed
      org.tmatesoft.svn.core.SVNCancelException: svn: E200015: OPTIONS <PROJECT_PATH> failed
      at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:384)
      at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:373)
      at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:361)
      at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:707)
      at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:627)
      at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:102)
      at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1020)
      at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.testConnection(DAVRepository.java:99)
      at hudson.scm.SubversionSCM$DescriptorImpl.checkRepositoryPath(SubversionSCM.java:2288)
      at hudson.scm.SubversionSCM$ModuleLocation$DescriptorImpl.doCheckCredentialsId(SubversionSCM.java:2997)
      at sun.reflect.GeneratedMethodAccessor249.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      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:120)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
      at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
      at org.kohsuke.stapler.MetaClass$6.doDispatch(MetaClass.java:248)
      at org.kohsuke.stapler.NameBasedDispatcher.dispatch(NameBasedDispatcher.java:53)
      at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:728)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:858)
      at org.kohsuke.stapler.Stapler.invoke(Stapler.java:631)
      at org.kohsuke.stapler.Stapler.service(Stapler.java:225)
      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:96)
      at hudson.util.PluginServletFilter.doFilter(PluginServletFilter.java:88)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
      at hudson.security.csrf.CrumbFilter.doFilter(CrumbFilter.java:48)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
      at hudson.security.ChainedServletFilter$1.doFilter(ChainedServletFilter.java:84)
      at hudson.security.ChainedServletFilter.doFilter(ChainedServletFilter.java:76)
      at hudson.security.HudsonFilter.doFilter(HudsonFilter.java:164)
      at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1482)
      at org.kohsuke.stapler.compression.CompressionFilter.doFilter(CompressionFilter.java:46)
      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: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.headerComplete(AbstractHttpConnection.java:949)
      at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1011)
      at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
      at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
      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(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      at java.lang.Thread.run(Unknown Source)
      Caused by: org.tmatesoft.svn.core.SVNCancelException: svn: E200015: No credential to try. Authentication failed
      at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:37)
      at org.tmatesoft.svn.core.internal.wc.SVNErrorManager.cancel(SVNErrorManager.java:32)
      at org.tmatesoft.svn.core.internal.wc.DefaultSVNAuthenticationManager.getNextAuthentication(DefaultSVNAuthenticationManager.java:223)
      at hudson.scm.FilterSVNAuthenticationManager.getNextAuthentication(FilterSVNAuthenticationManager.java:39)
      at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:697)
      at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:382)
      ... 68 more

        Attachments

        1. Log_Failed.txt
          2 kB
        2. Log_Success.txt
          2 kB
        3. svn_issue1.png
          svn_issue1.png
          72 kB

          Activity

          Hide
          danielbeck Daniel Beck added a comment -

          Did you specify the same credentials in TortoiseSVN as in Jenkins?

          Is there a Subversion profile folder on the Jenkins server for the user Jenkins runs as that contains e.g. outdated passwords?

          Did it ever work? If so, what changed?

          What version of Jenkins and Subversion plugin is this?

          What is the user name format?

          Does the URL specified in Jenkins contain variables? If so, does it work without them?

          MORE DETAILS.

          Show
          danielbeck Daniel Beck added a comment - Did you specify the same credentials in TortoiseSVN as in Jenkins? Is there a Subversion profile folder on the Jenkins server for the user Jenkins runs as that contains e.g. outdated passwords? Did it ever work? If so, what changed? What version of Jenkins and Subversion plugin is this? What is the user name format? Does the URL specified in Jenkins contain variables? If so, does it work without them? MORE DETAILS.
          Hide
          danielbeck Daniel Beck added a comment -

          Maybe try downloading SVNKit from svnkit.com (preferably the latest 1.7.x) and try to run some svn command line commands using the included "jsvn" command line utility. It's basically a different, compatible implementation of the SVN client. If that doesn't work, try to make it work (there may be better error messages than in Jenkins).

          Show
          danielbeck Daniel Beck added a comment - Maybe try downloading SVNKit from svnkit.com (preferably the latest 1.7.x) and try to run some svn command line commands using the included "jsvn" command line utility. It's basically a different, compatible implementation of the SVN client. If that doesn't work, try to make it work (there may be better error messages than in Jenkins).
          Hide
          plinioss Plinio Santos added a comment -

          More info:
          The Visual SVN Server authentication method is "Use Windows authentication", with the option "Integrated windows authentication". I guess it might be important to solve this.

          Did you specify the same credentials in TortoiseSVN as in Jenkins?
          Actually, Tortoise does not ask me for user/password. It's probably using windows credentials.

          Is there a Subversion profile folder on the Jenkins server for the user Jenkins runs as that contains e.g. outdated passwords?
          It's the first Jenkins setup I done and I didn't change my credentials since then.

          Did it ever work? If so, what changed?
          No, it never worked. Realize that this is the fist Jenkins setup.

          What version of Jenkins and Subversion plugin is this?
          Jenkins ver. 1.565.1 and Subversion plugin 2.4.3

          What is the user name format?
          DOMAIN\user_name (e.g. DS\myname)

          Does the URL specified in Jenkins contain variables? If so, does it work without them?
          No, it does not.

          In addiction, I tried checkout with jsvn without success. I'm getting an "Negotiate authentication failed" error so like you suggested I'll try to pass over this with jsvn.

          Show
          plinioss Plinio Santos added a comment - More info: The Visual SVN Server authentication method is "Use Windows authentication", with the option "Integrated windows authentication". I guess it might be important to solve this. Did you specify the same credentials in TortoiseSVN as in Jenkins? Actually, Tortoise does not ask me for user/password. It's probably using windows credentials. Is there a Subversion profile folder on the Jenkins server for the user Jenkins runs as that contains e.g. outdated passwords? It's the first Jenkins setup I done and I didn't change my credentials since then. Did it ever work? If so, what changed? No, it never worked. Realize that this is the fist Jenkins setup. What version of Jenkins and Subversion plugin is this? Jenkins ver. 1.565.1 and Subversion plugin 2.4.3 What is the user name format? DOMAIN\user_name (e.g. DS\myname) Does the URL specified in Jenkins contain variables? If so, does it work without them? No, it does not. In addiction, I tried checkout with jsvn without success. I'm getting an "Negotiate authentication failed" error so like you suggested I'll try to pass over this with jsvn.
          Hide
          danielbeck Daniel Beck added a comment -

          The Visual SVN Server authentication method is "Use Windows authentication", with the option "Integrated windows authentication". I guess it might be important to solve this.

          This is unsupported by Jenkins. You need to configure your Subversion server to offer other kinds of authentication, and specify credentials explicitly within Jenkins.

          This will not be fixed unless it's also implemented in the Subversion library used, SVNKit.

          Show
          danielbeck Daniel Beck added a comment - The Visual SVN Server authentication method is "Use Windows authentication", with the option "Integrated windows authentication". I guess it might be important to solve this. This is unsupported by Jenkins. You need to configure your Subversion server to offer other kinds of authentication, and specify credentials explicitly within Jenkins. This will not be fixed unless it's also implemented in the Subversion library used, SVNKit.

            People

            • Assignee:
              Unassigned
              Reporter:
              plinioss Plinio Santos
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: