Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Hudson » SVN externals no longer trigger SCM Polling builds(Committing changes to an SVN external does not trigger an SCM Polling build)
SVN externals no longer trigger SCM Polling builds [message #987113] Fri, 23 November 2012 15:03 Go to next message
daniel leonard is currently offline 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 #987330 is a reply to message #987113] Mon, 26 November 2012 08:01 Go to previous messageGo to next message
k z is currently offline k z
Messages: 71
Registered: October 2012
Member
Hi,
I have similar experience. Commit to svn external does not trigger the buid. My configuration is a bit different, though.
Hudson ver: 2.2.0
svn workspace ver: 1.6
svn plugin ver: 2.3.3

So it looks like your previous configuration
Re: SVN externals no longer trigger SCM Polling builds [message #987397 is a reply to message #987330] Mon, 26 November 2012 13:14 Go to previous messageGo to next message
Steve Christou is currently offline Steve Christou
Messages: 125
Registered: June 2012
Location: Milwaukee, Wisconsin
Senior Member

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 15:09 Go to previous messageGo to next message
k z is currently offline k z
Messages: 71
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 15:12]

Report message to a moderator

Re: SVN externals no longer trigger SCM Polling builds [message #988593 is a reply to message #988578] Fri, 30 November 2012 15:54 Go to previous messageGo to next message
Steve Christou is currently offline Steve Christou
Messages: 125
Registered: June 2012
Location: Milwaukee, Wisconsin
Senior Member

This is a known issue and I'm going to resolve as quickly as possible.

/**
 * @author Steven Christou
 * @dev    Hudson-ci
 */
Re: SVN externals no longer trigger SCM Polling builds [message #1001491 is a reply to message #988593] Wed, 16 January 2013 20:21 Go to previous messageGo to next message
Douglas Moore is currently offline Douglas Moore
Messages: 19
Registered: July 2012
Junior Member
Is this still an open issue? I'm having the same problem with hudson 3.0.0 and svn plugin 2.3.6-h-1.

All the /var/lib/hudson/jobs/"myjob"/svnexternals.txt has is

<?xml version='1.0' encoding='UTF-8'?>
<list/>

Re: SVN externals no longer trigger SCM Polling builds [message #1001500 is a reply to message #1001491] Wed, 16 January 2013 20:48 Go to previous messageGo to next message
Steve Christou is currently offline Steve Christou
Messages: 125
Registered: June 2012
Location: Milwaukee, Wisconsin
Senior Member

hmm, I thought I had resolved these issue in 2.3.6. Are you seeing the stack trace issue or the svnexternal polling issue?

/**
 * @author Steven Christou
 * @dev    Hudson-ci
 */
Re: SVN externals no longer trigger SCM Polling builds [message #1001509 is a reply to message #1001500] Wed, 16 January 2013 21:13 Go to previous messageGo to next message
Douglas Moore is currently offline Douglas Moore
Messages: 19
Registered: July 2012
Junior Member
Polling
Re: SVN externals no longer trigger SCM Polling builds [message #1001514 is a reply to message #1001509] Wed, 16 January 2013 21:19 Go to previous messageGo to next message
Douglas Moore is currently offline Douglas Moore
Messages: 19
Registered: July 2012
Junior Member
Additional info.

I had original evaluated hudson 2.2.1 and had the same problem. I found that downgrading to 2.2.0 worked. I think it was related to the fact that our svn repositories are 1.6. From what I remember I read something about 2.2.1 using different version of svnkit whatever that is.
Re: SVN externals no longer trigger SCM Polling builds [message #1001915 is a reply to message #1001514] Thu, 17 January 2013 14:51 Go to previous messageGo to next message
daniel leonard is currently offline daniel leonard
Messages: 3
Registered: November 2012
Junior Member
Hi,

Just to confirm, polling of externals is not working for me either (plug-in 2.3.6, Hudson 2.2.1).

Thanks
Dan
Re: SVN externals no longer trigger SCM Polling builds [message #1002238 is a reply to message #1001915] Fri, 18 January 2013 08:28 Go to previous messageGo to next message
k z is currently offline k z
Messages: 71
Registered: October 2012
Member
Hi,

It does not work for me either. None of the following versions work: 2.3.3, 2.3.4, 2.3.5, 2.3.6. Moveover, I got "authentication cancelled" exception while checking out externals now and again, which is extremely annoying. If you try to run the build again and you are lucky it will be checkout successfully. svnexternals.txt file is always empty.

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.getFirstAuthentication(DefaultSVNAuthenticationManager.java:177)
	at org.tmatesoft.svn.core.internal.io.dav.http.HTTPConnection.request(HTTPConnection.java:580)
	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:696)
	at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.exchangeCapabilities(DAVConnection.java:619)
	at org.tmatesoft.svn.core.internal.io.dav.DAVConnection.open(DAVConnection.java:103)
	at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.openConnection(DAVRepository.java:1016)
	at org.tmatesoft.svn.core.internal.io.dav.DAVRepository.checkPath(DAVRepository.java:219)
	at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.handleExternalItemChange(SvnNgAbstractUpdate.java:357)
	at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.handleExternalsChange(SvnNgAbstractUpdate.java:317)
	at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.handleExternals(SvnNgAbstractUpdate.java:253)
	at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.updateInternal(SvnNgAbstractUpdate.java:231)
	at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.update(SvnNgAbstractUpdate.java:100)
	at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgAbstractUpdate.checkout(SvnNgAbstractUpdate.java:756)
	at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCheckout.run(SvnNgCheckout.java:14)
	at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgCheckout.run(SvnNgCheckout.java:9)
	at org.tmatesoft.svn.core.internal.wc2.ng.SvnNgOperationRunner.run(SvnNgOperationRunner.java:20)
	at org.tmatesoft.svn.core.internal.wc2.SvnOperationRunner.run(SvnOperationRunner.java:20)
	at org.tmatesoft.svn.core.wc2.SvnOperationFactory.run(SvnOperationFactory.java:1221)
	at org.tmatesoft.svn.core.wc2.SvnOperation.run(SvnOperation.java:292)
	at org.tmatesoft.svn.core.wc.SVNUpdateClient.doCheckout(SVNUpdateClient.java:781)
	at hudson.scm.subversion.CheckoutUpdater$UpdateTaskImpl.perform(CheckoutUpdater.java:99)
	at hudson.scm.subversion.WorkspaceUpdater$UpdateTask.delegateTo(WorkspaceUpdater.java:152)
	at hudson.scm.SubversionSCM$CheckOutTask.perform(SubversionSCM.java:807)
	at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:790)
	at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:771)
	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(Unknown Source)
	at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
[WARNINGS] Skipping publisher since build result is FAILURE
Re: SVN externals no longer trigger SCM Polling builds [message #1002508 is a reply to message #1002238] Fri, 18 January 2013 18:23 Go to previous messageGo to next message
Douglas Moore is currently offline Douglas Moore
Messages: 19
Registered: July 2012
Junior Member
We workaround this by explicitly listing every external as an svn location in the job.
Its a pain because we have a lot of externals. But it works
Re: SVN externals no longer trigger SCM Polling builds [message #1004779 is a reply to message #1002508] Wed, 23 January 2013 21:30 Go to previous messageGo to next message
Steve Christou is currently offline Steve Christou
Messages: 125
Registered: June 2012
Location: Milwaukee, Wisconsin
Senior Member

Douglas, Sorry for the delay on this fix. The latest subversion plugin (2.3.7 and 2.3.7-h-1) has a good solution for this issue.

K Z, Please check out the wiki page: http://wiki.hudson-ci.org/display/HUDSON/Subversion+Plugin#SubversionPlugin-TroubleShooting for more information on that exception.


/**
 * @author Steven Christou
 * @dev    Hudson-ci
 */
Re: SVN externals no longer trigger SCM Polling builds [message #1005118 is a reply to message #1004779] Thu, 24 January 2013 14:04 Go to previous messageGo to next message
k z is currently offline k z
Messages: 71
Registered: October 2012
Member
@Douglas Moore
Thanks, your workaround works! Once all credentials are saved in subversion.credentials file(template in my case) via explicit listing all externals, you can remove them from checkout locations.

@Steve Christou
Provided solutions didn't help, however, Douglas provided valid workaround. Is it possible to fix it somehow in plugin ?

Regards!
Re: SVN externals no longer trigger SCM Polling builds [message #1005151 is a reply to message #1005118] Thu, 24 January 2013 15:01 Go to previous messageGo to next message
k z is currently offline k z
Messages: 71
Registered: October 2012
Member
BTW
In 2.3.7 pooling externals works correctly as long as credentials are explicitly listed for each external in subverson.credentials file. Otherwise I got well known authentication cancelled exception on pooling.

Regards!

[Updated on: Thu, 24 January 2013 15:02]

Report message to a moderator

Re: SVN externals no longer trigger SCM Polling builds [message #1005762 is a reply to message #1005151] Mon, 28 January 2013 16:12 Go to previous messageGo to next message
daniel leonard is currently offline daniel leonard
Messages: 3
Registered: November 2012
Junior Member
2.3.7 is working for me too.
Thanks Steve, you're a star!
Re: SVN externals no longer trigger SCM Polling builds [message #1006039 is a reply to message #1005762] Tue, 29 January 2013 15:43 Go to previous messageGo to next message
Steve Christou is currently offline Steve Christou
Messages: 125
Registered: June 2012
Location: Milwaukee, Wisconsin
Senior Member

Thanks Smile

Also after a few hours trying to figure out the authentication cancelled exception, I found out the real reason why that occurs. When the svn plugin fails to find a version of subversion.credentials file, or any form of authentication(global or system authentication) it will throw that exception. In the case above, when it uses DefaultSVNAuthenticationManager, it goes to ~/.subversion to locate any authentication. I will try resolving this issue on next release.


/**
 * @author Steven Christou
 * @dev    Hudson-ci
 */
Re: SVN externals no longer trigger SCM Polling builds [message #1007164 is a reply to message #1006039] Mon, 04 February 2013 16:20 Go to previous messageGo to next message
Douglas Moore is currently offline Douglas Moore
Messages: 19
Registered: July 2012
Junior Member
I'm not understanding all the details here. I'm not familiar with the file subversion.credentials. I have hudson.scm.SubversionSCM.xml which was generate when I tested my credentials via http://localhost:8080/scm/SubversionSCM/enterCredential

With the 2.3.7 plugin is there another step to make polling work with the externals?


Re: SVN externals no longer trigger SCM Polling builds [message #1007173 is a reply to message #1007164] Mon, 04 February 2013 17:38 Go to previous messageGo to next message
Steve Christou is currently offline Steve Christou
Messages: 125
Registered: June 2012
Location: Milwaukee, Wisconsin
Senior Member

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 10:28 Go to previous messageGo to next message
k z is currently offline k z
Messages: 71
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 10:29]

Report message to a moderator

Re: SVN externals no longer trigger SCM Polling builds [message #1010774 is a reply to message #1007524] Mon, 18 February 2013 08:09 Go to previous messageGo to next message
k z is currently offline k z
Messages: 71
Registered: October 2012
Member
What changes were introduced in V2.3.8? Could you please keep web page changelog up to date?

Re: SVN externals no longer trigger SCM Polling builds [message #1011031 is a reply to message #1010774] Mon, 18 February 2013 17:41 Go to previous message
Steve Christou is currently offline Steve Christou
Messages: 125
Registered: June 2012
Location: Milwaukee, Wisconsin
Senior Member

Sorry about that. The wiki page had some login issues. Those are now fixed and I updated the wiki page.

ChangeLog:
Improvements -
Add ability to use global variables in SVN Url.
Add cleaner message when authentication fails.

Bugs-
399165 - Issue with svn post-commit hook.
Fixed issue from email thread http://dev.eclipse.org/mhonarc/lists/hudson-dev/msg00374.html


/**
 * @author Steven Christou
 * @dev    Hudson-ci
 */
Previous Topic:"Invoke Maven 3" build step missing
Next Topic:Hudson doesn't start on Oracle linux
Goto Forum:
  


Current Time: Wed Sep 03 04:55:31 GMT 2014

Powered by FUDForum. Page generated in 0.03840 seconds