jenkinsci / jenkinsci/subversion-plugin
[JENKINS-31662] Check out of project wth svn:externals to files fails
- Dominant language
- Java
- Stars
- 131
- Forks
- 275
- Avg merge
- 12h 4m
- Merged PRs (30d)
- 6
Description
Checking out a project with two file externals fails with the following errors:
```
[...]
A web-app/WEB-INF/instruments/ESPRESSO-1.01/ESPRESSO_multiMR_obs.tsf
A web-app/WEB-INF/instruments/ESPRESSO-1.01/test_ESPRESSO_TPL_sci.tsf
A web-app/WEB-INF/instruments/ESPRESSO-1.01/ESPRESSERROR: Failed to check out http:///trunk/DFS/p2
org.tmatesoft.svn.core.SVNCancelException: svn: E200015: authentication cancelled
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:215)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:685)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:371)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:359)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:710)
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:1032)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.hasCapability(DAVRepository.java:860)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.runReport(DAVRepository.java:1278)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.update(DAVRepository.java:845)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.switchFileExternal(SvnNgAbstractUpdate.java:587)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.handleExternalItemChange(SvnNgAbstractUpdate.java:395)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.handleExternalsChange(SvnNgAbstractUpdate.java:310)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.handleExternals(SvnNgAbstractUpdate.java:246)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.updateInternal(SvnNgAbstractUpdate.java:224)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.update(SvnNgAbstractUpdate.java:72)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.checkout(SvnNgAbstractUpdate.java:802)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCheckout.run(SvnNgCheckout.java:26)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCheckout.run(SvnNgCheckout.java:11)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgOperationRunner.run(SvnNgOperationRunner.java:20)
at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:21)
at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1259)
at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294)
at hudson.scm.subversion.CheckoutUpdater$1.perform(CheckoutUpdater.java:121)
at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:162)
at hudson.scm.SubversionSCM$CheckOutTask.perform(SubversionSCM.java:992)
at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:973)
at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:949)
at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2691)
at hudson.remoting.UserRequest.perform(UserRequest.java:121)
at hudson.remoting.UserRequest.perform(UserRequest.java:49)
at hudson.remoting.Request$2.run(Request.java:326)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
O_singleUHR_cal_pix.tsf
A web-app/WEB-INF/instruments/ESPRESSO-1.01/ESPRESSO_single_acq_obj.tsf
A web-app/WEB-INF/instruments/evmAPI.tcl
[...]
A grailsw.bat
A application.properties
U.
Fetching 'http:///trunk/DFS/OHS/esoAuthenticator/src/main/java/org/eso/ohs/esoAuthenticator/BCrypt.java' at -1 into '/diska/home/jenkins/workspace/p2web/src/java/org/eso/ohs/esoAuthenticator/BCrypt.java'
FATAL: null
java.lang.NullPointerException
at java.util.ArrayList.addAll(ArrayList.java:559)
at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:898)
at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:834)
at hudson.scm.SCM.checkout(SCM.java:485)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1284)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:610)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:532)
at hudson.model.Run.execute(Run.java:1741)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:381)
}}
```
Note that the URL reported for the SVNCancelException is the URL of the project I am checking out. The URL reported with NPE is the URL of one of the file externals.
Extra credentials for the externals are set up as described in JENKINS-21785">JENKINS-21785 (and they work in other projects that use externals to directories).
The externals are in the "new" format, that list the URL first, followed by the destination. The svn:externals property is set on the directory into which the files will be checked-out. I tried this with '-rXXX filename', '@XXX filename' format, and the same without pinning the version of the external file(s). All result in the same errors.
---
Originally reported by mpruemm, imported from: Check out of project wth svn:externals to files fails
recena
Raw content of original issue
Checking out a project with two file externals fails with the following errors:
[...]
A web-app/WEB-INF/instruments/ESPRESSO-1.01/ESPRESSO_multiMR_obs.tsf
A web-app/WEB-INF/instruments/ESPRESSO-1.01/test_ESPRESSO_TPL_sci.tsf
A web-app/WEB-INF/instruments/ESPRESSO-1.01/ESPRESSERROR: Failed to check out http://<host>/trunk/DFS/p2
org.tmatesoft.svn.core.SVNCancelException: svn: E200015: authentication cancelled
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:215)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:685)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:371)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:359)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:710)
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:1032)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.hasCapability(DAVRepository.java:860)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.runReport(DAVRepository.java:1278)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.update(DAVRepository.java:845)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.switchFileExternal(SvnNgAbstractUpdate.java:587)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.handleExternalItemChange(SvnNgAbstractUpdate.java:395)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.handleExternalsChange(SvnNgAbstractUpdate.java:310)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.handleExternals(SvnNgAbstractUpdate.java:246)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.updateInternal(SvnNgAbstractUpdate.java:224)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.update(SvnNgAbstractUpdate.java:72)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.checkout(SvnNgAbstractUpdate.java:802)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCheckout.run(SvnNgCheckout.java:26)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCheckout.run(SvnNgCheckout.java:11)
at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgOperationRunner.run(SvnNgOperationRunner.java:20)
at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:21)
at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1259)
at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:294)
at hudson.scm.subversion.CheckoutUpdater$1.perform(CheckoutUpdater.java:121)
at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:162)
at hudson.scm.SubversionSCM$CheckOutTask.perform(SubversionSCM.java:992)
at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:973)
at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:949)
at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2691)
at hudson.remoting.UserRequest.perform(UserRequest.java:121)
at hudson.remoting.UserRequest.perform(UserRequest.java:49)
at hudson.remoting.Request$2.run(Request.java:326)
at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:68)
at java.util.concurrent.FutureTask.run(FutureTask.java:262)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
O_singleUHR_cal_pix.tsf
A web-app/WEB-INF/instruments/ESPRESSO-1.01/ESPRESSO_single_acq_obj.tsf
A web-app/WEB-INF/instruments/evmAPI.tcl
[...]
A grailsw.bat
A application.properties
U .
Fetching 'http://<host>/trunk/DFS/OHS/esoAuthenticator/src/main/java/org/eso/ohs/esoAuthenticator/BCrypt.java' at -1 into '/diska/home/jenkins/workspace/p2web/src/java/org/eso/ohs/esoAuthenticator/BCrypt.java'
FATAL: null
java.lang.NullPointerException
at java.util.ArrayList.addAll(ArrayList.java:559)
at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:898)
at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:834)
at hudson.scm.SCM.checkout(SCM.java:485)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1284)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:610)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:532)
at hudson.model.Run.execute(Run.java:1741)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:381)
}}Note that the URL reported for the SVNCancelException is the URL of the project I am checking out. The URL reported with NPE is the URL of one of the file externals.
Extra credentials for the externals are set up as described in
JENKINS-21785(and they work in other projects that use externals to directories).The externals are in the "new" format, that list the URL first, followed by the destination. The svn:externals property is set on the directory into which the files will be checked-out. I tried this with '-rXXX <URL> filename', '<URL>@XXX filename' format, and the same without pinning the version of the external file(s). All result in the same errors.
environment
```
Jenkins 1.638
svn plugin 2.5.4
svn working copy format 1.7
```
Contributor guide
Assessment
This issue has not been assessed yet.