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
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.
I was getting the exactly same exception and it was because of using build parameter in repository path, e.g.:
even in case ${SVN_BRANCH} was correctly set to 'trunk' It was not working
when I changed repository path to:
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
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)
<prot://ip:port > Company Subversion Repository
)svn --username {username} --password {password} checkout prot://ip:port/svn/repo
<-- you can cancel this after it has started the checkoutfind ~/.subversion/auth/svn.simple/ -type f -exec cat {} + | grep -A 2 realmstring
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.
When you update subversion plugin, you should do one of the below.
or
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:
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: