Jenkins Subversion Error - E200015: No credential to try. Authentication failed

mikepenz picture mikepenz · Feb 27, 2014 · Viewed 50.6k times · Source

I've updated the Subversion plugin of jenkins to version 2.2

Now i get following error for repos which build the first time after the upgrade and for repos where something within an external changed. It works for all other builds as expected.

I tried to add additional credentials but this did not help.

Now i hope someone has an idea what else can be tried to fix this annyoing issue.

The error:

hudson.util.IOException2: revision check failed on http://XXX/svn/XXX/Website/Config/trunk
    at hudson.scm.SubversionChangeLogBuilder.buildModule(SubversionChangeLogBuilder.java:189)
    at hudson.scm.SubversionChangeLogBuilder.run(SubversionChangeLogBuilder.java:132)
    at hudson.scm.SubversionSCM.calcChangeLog(SubversionSCM.java:738)
    at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:899)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1411)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:671)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:580)
    at hudson.model.Run.execute(Run.java:1670)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:231)
Caused by: org.tmatesoft.svn.core.SVNCancelException: svn: E200015: OPTIONS /svn/XXX/Website/Config/trunk 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.getLatestRevision(DAVRepository.java:180)
    at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.getRevisionNumber(SvnNgRepositoryAccess.java:118)
    at org.tmatesoft.svn.core.internal.wc2.SvnRepositoryAccess.getLocations(SvnRepositoryAccess.java:148)
    at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgRepositoryAccess.createRepositoryFor(SvnNgRepositoryAccess.java:45)
    at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteLog.run(SvnRemoteLog.java:160)
    at org.tmatesoft.svn.core.internal.wc2.remote.SvnRemoteLog.run(SvnRemoteLog.java:35)
    at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:20)
    at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1238)
    at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294)
    at org.tmatesoft.svn.core.wc.SVNLogClient.doLog(SVNLogClient.java:967)
    at org.tmatesoft.svn.core.wc.SVNLogClient.doLog(SVNLogClient.java:872)
    at hudson.scm.SubversionChangeLogBuilder.buildModule(SubversionChangeLogBuilder.java:177)
    ... 11 more
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.getFirstAuthentication(DefaultSVNAuthenticationManager.java:185)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection._request(HTTPConnection.java:694)
    at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:382)
    ... 29 more

Answer

mikepenz picture mikepenz · Apr 2, 2014

Ok after many comments on the official bug report we were able to solve this issue.

So to get it working you have to update to the newest 2.3-snaptshot of the subversion plugin, which can be found here:

https://jenkins.ci.cloudbees.com/job/plugins/job/subversion-plugin/

(Download the .hpi file and install it on your jenkins)

  1. After that you have to fix your build. I've written a small tutorial on how you can do this here.
  2. open the build configuration
  3. scroll down to the source-code-management section
  4. click on the "Add additional credentials..." button
  5. define as realm the specific identifier for our svn server --> (<prot://ip:port > Company Subversion Repository)
    • if it should work for a different svn you need to use the realm of this server
    • checkout a repo on this server via the command-line --> svn --username {username} --password {password} checkout prot://ip:port/svn/repo <-- you can cancel this after it has started the checkout
    • read all realms available on your mac with this cmd --> find ~/.subversion/auth/svn.simple/ -type f -exec cat {} + | grep -A 2 realmstring
      • there's also another option to get the realmstring. on a pc which was not connected to the svn before, do the following in the therminal: "svn info prot://ip:port/pathtorepo" --> this will output something like "Authentication realm: Company Subversion Repository"
  6. select the credentials --> buildmaster/****** (<prot://ip:port> Company Subversion Repository)

NOTE : If you are using svn+ssh, your realm would look like "svn+ssh://server-name" without double-quotes. No pointy brackets, port or realm name needed.

  1. save and be happy!