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

52,155

Solution 1

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!

Solution 2

I had same error. Since the svn repo was password protected. when I add the credential and use it for svn check out, it works fine.

enter image description here

Solution 3

I was getting the exactly same exception and it was because of using build parameter in repository path, e.g.:

http://reposerver/svn/project/${SVN_BRANCH}

even in case ${SVN_BRANCH} was correctly set to 'trunk' It was not working

when I changed repository path to:

http://reposerver/svn/project/trunk

everything works fine now

This issue occurred after upgrading svn plugin from 1.54 to 2.2, so it looks like there is some bug in new version of svn jenkins plugin

Solution 4

I'd like to emphasize a point in mikepenz' answer: In the text field Realm of your job configuration (after clicking Add additional credentials...) you don't enter merely your SVN realm but your realm and the complete URL of your external repo. This tripped me up.

So this part of your job config ends up looking like this:

enter image description here

Edit:

As it turns out, the above did not improve the situation: The credential error still occurred and moreover commits to external repos did not trigger Jenkins to build the software.

I followed the recommendation here (that also mentions security concerns with the approach described above) and used modules in Jenkins for my external repositories.

This is how my module configuration looks for an external repo:

jenkins external repo as module

Share:
52,155
mikepenz
Author by

mikepenz

Updated on August 19, 2020

Comments

  • mikepenz
    mikepenz over 3 years

    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