| SVN externals no longer trigger SCM Polling builds [message #987113] |
Fri, 23 November 2012 10:03  |
daniel leonard Messages: 3 Registered: November 2012 |
Junior Member |
|
|
Hi,
I have a c# solution which includes several projects that get brought into the solution folder using svn:externals.
My Hudson job is configured to build from the latest SVN sources which includes the externals. The build trigger is set to SCM polling.
When I commit a change in one of the externals projects I expect Hudson to trigger a build on my job. This was working fine a couple of months ago but does not work now. Changes to non-external code trigger as expected.
The only changes I can recall are:
- Hudson upgraded from 2.2 to 2.2.1
- SVN upgraded to 1.7.6 on build server. In Hudson, Subversion Workspace Version changed from "1.6 (svn:external to file)" to "1.7"
- SVN plug-in upgraded to 2.3.4 from 2.3.2 that was bundled with Hudson 2.2.1 (Same behaviour with either version)
As far as I can gather the SVNKit within the SVN plug-in is responsible for checking for changes to svn:externals because SVN itself does not do it. Has this been broken during the recent changes listed above?
Is anyone else seeing this problem - there does not seem to be enough mention of it the internet which makes me think it is just my system!
Thanks
|
|
|
|
| Re: SVN externals no longer trigger SCM Polling builds [message #987397 is a reply to message #987330] |
Mon, 26 November 2012 08:14   |
|
Hello,
This is a known issue. There have been some major improvements to the subversion plugin to remove the custom svnkit that hudson was originally using and switch to the unmodified version. Someone in the mailing list has addressed this issue to me. I will try to release the new version today which I believe contain a solution to this.
Thanks,
Steve.
/**
* @author Steven Christou
* @dev Hudson-ci
*/
|
|
|
| Re: SVN externals no longer trigger SCM Polling builds [message #988578 is a reply to message #987397] |
Fri, 30 November 2012 10:09   |
k z Messages: 48 Registered: October 2012 |
Member |
|
|
Hi,
I have installed this new version (Hudson Subversion Plug-in 2.3.5). Still the changes in externals are not detected. Moreover, when the build is triggered (manually or via pooling) svn plugin crashes with following error:
Started by an SCM change
Building remotely on koth(Linux_UbuntuServer)
Cleaning workspace /hudson/workspace/svn_plugin_test
Checking out https://<my_server_url>/svn/ci_sandbox/test revision: Nov 30, 2012 3:43:19 PM depth:infinity ignoreExternals: false
FATAL: org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration
java.lang.ClassCastException: org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration
at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source)
at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.<init>(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl.<init>(Unknown Source)
at org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParser(Unknown Source)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.readData(HTTPConnection.java:768)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.readData(HTTPConnection.java:742)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPRequest.dispatch(HTTPRequest.java:218)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:368)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:286)
at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:274)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.performHttpRequest(DAVConnection.java:704)
at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.doPropfind(DAVConnection.java:132)
at org.tmatesoft.svn.core.internal.io.dav.DAVUtil.getProperties(DAVUtil.java:73)
at org.tmatesoft.svn.core.internal.io.dav.DAVUtil.getResourceProperties(DAVUtil.java:79)
at org.tmatesoft.svn.core.internal.io.dav.DAVUtil.getStartingProperties(DAVUtil.java:103)
at org.tmatesoft.svn.core.internal.io.dav.DAVUtil.findStartingProperties(DAVUtil.java:125)
at org.tmatesoft.svn.core.internal.io.dav.DAVUtil.getBaselineProperties(DAVUtil.java:226)
at org.tmatesoft.svn.core.internal.io.dav.DAVUtil.getBaselineInfo(DAVUtil.java:184)
at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.getLatestRevision(DAVRepository.java:184)
at org.tmatesoft.svn.core.internal.wc16.SVNBasicDelegate.getRevisionNumber(SVNBasicDelegate.java:480)
at org.tmatesoft.svn.core.internal.wc16.SVNBasicDelegate.getLocations(SVNBasicDelegate.java:833)
at org.tmatesoft.svn.core.internal.wc16.SVNBasicDelegate.createRepository(SVNBasicDelegate.java:527)
at org.tmatesoft.svn.core.internal.wc16.SVNUpdateClient16.doCheckout(SVNUpdateClient16.java:925)
at org.tmatesoft.svn.core.internal.wc2.old.SvnOldCheckout.run(SvnOldCheckout.java:19)
at org.tmatesoft.svn.core.internal.wc2.old.SvnOldCheckout.run(SvnOldCheckout.java:8)
at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:20)
at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1235)
at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:291)
at org.tmatesoft.svn.core.wc.SVNUpdateClient.doCheckout(SVNUpdateClient.java:777)
at hudson.scm.subversion.CheckoutUpdater$UpdateTaskImpl.perform(CheckoutUpdater.java:110)
at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:152)
at hudson.scm.SubversionSCM$CheckOutTask.perform(SubversionSCM.java:810)
at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:793)
at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:774)
at hudson.FilePath$FileCallableWrapper.call(FilePath.java:1960)
at hudson.remoting.UserRequest.perform(UserRequest.java:114)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:283)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
I had to get back to svn plugin 2.3.4, at least I can checkout sources. ANy idea why it does not work? My Hudson version is 2.2.0 place in Tomcat 6.
Regards!
[Updated on: Fri, 30 November 2012 10:12] Report message to a moderator
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Re: SVN externals no longer trigger SCM Polling builds [message #1007173 is a reply to message #1007164] |
Mon, 04 February 2013 12:38   |
|
Sorry I should have been clearer with the response. The exception that is occurring (see k z's stack trace with authentication cancelled), is because it failed to find the subversion.credentials, the hudson.scm.SubversionSCM.xml, or the ~/.subversion/auth folders. The subversion.credentials file is svn credentials for each job (If credentials for a job are different than others), the hudson.scm.SubversionSCM.xml file is for hudson global credentials (used across multiple jobs), and the ~/.subversion/auth is used globally across the entire computer. Some people have had trouble storing credentials in the subversion.credentials or the hudson.scm.SubversionSCM.xml files. If hudson can't find the necessary credentials file, it will throw the authentication cancelled exception. I updated the error message to state that credentials were not found, which should be in the next release.
With the svn externals, I found that creating a new job and doing a fresh checkout actually helps with finding all the necessary externals information.
/**
* @author Steven Christou
* @dev Hudson-ci
*/
|
|
|
| Re: SVN externals no longer trigger SCM Polling builds [message #1007524 is a reply to message #1007173] |
Wed, 06 February 2013 05:28   |
k z Messages: 48 Registered: October 2012 |
Member |
|
|
Steve,
When credentials are saved and the job has cascading project, subversion.credentials file of that cascading job is updated, not the job you are modifying directly. Anyway, what credentials are used to checkout externals? It looks as if credentials used to checkout externals are not the one (or missing) used for checkout main project now and then. Sometimes explicit saving credentials for each external is necessery. What if project is stored on server A and its externals are pointing to different servers (yes, not just repo but entire server) B,C and D? In such case with V2.3.7 checkout works successfully, but pooling logs shows authenticaion cancelled exception on evey external from server A. When credentials for those externals are saved explicitly in subversion.credentials exceptions go away. Could you also add username used in authentication process to the error message? This should help us out a lot with troubleshooting.
Regards!
[Updated on: Wed, 06 February 2013 05:29] Report message to a moderator
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.05383 seconds