TeamCity 8.0.2, unable to collect changes with Subversion when externals enabled

We added link to externals to one directory of the branch coming from another directories of the same branch.
In SVN this setup is working properly as the directory will appear in the targeted directory.

UPD: We're found the same issue in TeamCity 8.0.2 (build 27482) Release Notes (TW-30237). This bug still reproduced!

But in TeamCity build log we got the following failure:

ERROR Unable to collect changes
Error collecting changes for VCS repository 'svn: http://xxx.xxx.xxx.xxx/svn/mygame {instance id=62, parent root: (id=AllGames, internal id=3)}'
Externals problem: processExternalsChanges, externals URL: http://xxx.xxx.xxx.xxx/svn/mygameloader, version: -1, path:gameloader: recursion detected


Stacktrace:

jetbrains.buildServer.vcs.VcsRootVcsException: Error collecting changes for VCS repository 'svn: http://xxx.xxx.xxx.xxx/svn/mygame {instance id=62, parent root: (id=AllGames, internal id=3)}'
Externals problem: processExternalsChanges, externals URL: http://xxx.xxx.xxx.xxx/svn/mygameloader, version: -1, path:gameloader: recursion detected
at jetbrains.buildServer.buildTriggers.vcs.ConnectionStateReporter.reportConnectionFailed(ConnectionStateReporter.java:11)
at jetbrains.buildServer.buildTriggers.vcs.ConnectionStateReporter.reportConnectionFailed(ConnectionStateReporter.java:5)
at jetbrains.buildServer.buildTriggers.vcs.VcsRootChangesLoader$1.run(VcsRootChangesLoader.java:17)
at jetbrains.buildServer.util.NamedThreadFactory.executeWithNewThreadName(NamedThreadFactory.java:103)
at jetbrains.buildServer.buildTriggers.vcs.VcsRootChangesLoader.loadChanges(VcsRootChangesLoader.java:62)
at jetbrains.buildServer.buildTriggers.vcs.VcsRootChangesLoader.loadChanges(VcsRootChangesLoader.java:98)
at jetbrains.buildServer.vcs.impl.VcsChangesLoaderImpl$2.run(VcsChangesLoaderImpl.java:2)
at jetbrains.buildServer.vcs.impl.VcsChangesLoaderImpl$3.call(VcsChangesLoaderImpl.java:2)
at jetbrains.buildServer.serverSide.impl.ImmediateFuture.get(ImmediateFuture.java:4)
at jetbrains.buildServer.serverSide.impl.ImmediateFuture.get(ImmediateFuture.java:3)
at jetbrains.buildServer.vcs.impl.VcsChangesLoaderImpl.waitForTasksToComplete(VcsChangesLoaderImpl.java:236)
at jetbrains.buildServer.vcs.impl.VcsChangesLoaderImpl.tryLoadChanges(VcsChangesLoaderImpl.java:206)
at jetbrains.buildServer.serverSide.impl.VcsModificationChecker$1$1.run(VcsModificationChecker.java:14)
at jetbrains.buildServer.util.NamedThreadFactory.executeWithNewThreadName(NamedThreadFactory.java:103)
at jetbrains.buildServer.serverSide.impl.VcsModificationChecker$1.run(VcsModificationChecker.java:3)
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)
Caused by: jetbrains.buildServer.vcs.VcsRootVcsException: Externals problem: processExternalsChanges, externals URL: http://xxx.xxx.xxx.xxx/svn/mygameloader, version: -1, path:gameloader: recursion detected
at jetbrains.vcs.api.services.collectChanges.CollectChangesServiceImpl.collectChanges(CollectChangesServiceImpl.java:20)
at jetbrains.vcs.api.services.collectChanges.CollectChangesServiceProvider$1.collectChanges(CollectChangesServiceProvider.java:5)
at jetbrains.buildServer.buildTriggers.vcs.LoadChanges.collectChangesForCheckoutRules(LoadChanges.java:51)
at jetbrains.buildServer.buildTriggers.vcs.LoadChanges.collectChanges(LoadChanges.java:13)
at jetbrains.buildServer.buildTriggers.vcs.LoadChanges.run(LoadChanges.java:2)
at jetbrains.buildServer.buildTriggers.vcs.VcsRootChangesLoader$1.run(VcsRootChangesLoader.java:2)
... 18 more
Caused by: jetbrains.buildServer.vcs.VcsException: Externals problem: processExternalsChanges, externals URL: http://xxx.xxx.xxx.xxx/svn/mygameloader, version: -1, path:gameloader: recursion detected
at jetbrains.buildServer.buildTriggers.vcs.svn.SvnConnection.processAllExternals(SvnConnection.java:256)
at jetbrains.buildServer.buildTriggers.vcs.svn.SvnConnectionOnServer.processExternalsChanges(SvnConnectionOnServer.java:124)
at jetbrains.buildServer.buildTriggers.vcs.svn.SvnConnectionOnServer.addChanges(SvnConnectionOnServer.java:95)
at jetbrains.buildServer.buildTriggers.vcs.svn.SvnIncludeRuleChangeCollector.collectChanges(SvnIncludeRuleChangeCollector.java:52)
at jetbrains.buildServer.vcs.utils.VcsPluginUtil.collectBuildChanges(VcsPluginUtil.java:43)
at jetbrains.buildServer.buildTriggers.vcs.svn.SvnChangesCollector.collectChangesForSingleRoot(SvnChangesCollector.java:97)
at jetbrains.buildServer.buildTriggers.vcs.svn.SvnChangesCollector.collectChanges(SvnChangesCollector.java:89)
at jetbrains.vcs.api.services.collectChanges.CollectRepositoryChangesByCheckoutRulesAdapter.collectChanges(CollectRepositoryChangesByCheckoutRulesAdapter.java:4)
at jetbrains.vcs.api.services.collectChanges.CollectChangesBetweenRepositoriesAdapter.collectChanges(CollectChangesBetweenRepositoriesAdapter.java:4)
at jetbrains.vcs.api.services.collectChanges.CollectChangesServiceImpl$CollectChangesInSingleRepository.perform(CollectChangesServiceImpl.java:6)
at jetbrains.vcs.api.services.collectChanges.CollectChangesServiceImpl.runAttempts(CollectChangesServiceImpl.java:19)
at jetbrains.vcs.api.services.collectChanges.CollectChangesServiceImpl.collectChanges(CollectChangesServiceImpl.java:15)
... 23 more
jetbrains.buildServer.vcs.VcsRootVcsException: Externals problem: processExternalsChanges, externals URL: http://xxx.xxx.xxx.xxx/svn/mygameloader, version: -1, path:gameloader: recursion detected
at jetbrains.vcs.api.services.collectChanges.CollectChangesServiceImpl.collectChanges(CollectChangesServiceImpl.java:20)
at jetbrains.vcs.api.services.collectChanges.CollectChangesServiceProvider$1.collectChanges(CollectChangesServiceProvider.java:5)
at jetbrains.buildServer.buildTriggers.vcs.LoadChanges.collectChangesForCheckoutRules(LoadChanges.java:51)
at jetbrains.buildServer.buildTriggers.vcs.LoadChanges.collectChanges(LoadChanges.java:13)
at jetbrains.buildServer.buildTriggers.vcs.LoadChanges.run(LoadChanges.java:2)
at jetbrains.buildServer.buildTriggers.vcs.VcsRootChangesLoader$1.run(VcsRootChangesLoader.java:2)
at jetbrains.buildServer.util.NamedThreadFactory.executeWithNewThreadName(NamedThreadFactory.java:103)
at jetbrains.buildServer.buildTriggers.vcs.VcsRootChangesLoader.loadChanges(VcsRootChangesLoader.java:62)
at jetbrains.buildServer.buildTriggers.vcs.VcsRootChangesLoader.loadChanges(VcsRootChangesLoader.java:98)
at jetbrains.buildServer.vcs.impl.VcsChangesLoaderImpl$2.run(VcsChangesLoaderImpl.java:2)
at jetbrains.buildServer.vcs.impl.VcsChangesLoaderImpl$3.call(VcsChangesLoaderImpl.java:2)
at jetbrains.buildServer.serverSide.impl.ImmediateFuture.get(ImmediateFuture.java:4)
at jetbrains.buildServer.serverSide.impl.ImmediateFuture.get(ImmediateFuture.java:3)
at jetbrains.buildServer.vcs.impl.VcsChangesLoaderImpl.waitForTasksToComplete(VcsChangesLoaderImpl.java:236)
at jetbrains.buildServer.vcs.impl.VcsChangesLoaderImpl.tryLoadChanges(VcsChangesLoaderImpl.java:206)
at jetbrains.buildServer.serverSide.impl.VcsModificationChecker$1$1.run(VcsModificationChecker.java:14)
at jetbrains.buildServer.util.NamedThreadFactory.executeWithNewThreadName(NamedThreadFactory.java:103)
at jetbrains.buildServer.serverSide.impl.VcsModificationChecker$1.run(VcsModificationChecker.java:3)
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)
Caused by: jetbrains.buildServer.vcs.VcsException: Externals problem: processExternalsChanges, externals URL: http://xxx.xxx.xxx.xxx/svn/mygameloader, version: -1, path:gameloader: recursion detected
at jetbrains.buildServer.buildTriggers.vcs.svn.SvnConnection.processAllExternals(SvnConnection.java:256)
at jetbrains.buildServer.buildTriggers.vcs.svn.SvnConnectionOnServer.processExternalsChanges(SvnConnectionOnServer.java:124)
at jetbrains.buildServer.buildTriggers.vcs.svn.SvnConnectionOnServer.addChanges(SvnConnectionOnServer.java:95)
at jetbrains.buildServer.buildTriggers.vcs.svn.SvnIncludeRuleChangeCollector.collectChanges(SvnIncludeRuleChangeCollector.java:52)
at jetbrains.buildServer.vcs.utils.VcsPluginUtil.collectBuildChanges(VcsPluginUtil.java:43)
at jetbrains.buildServer.buildTriggers.vcs.svn.SvnChangesCollector.collectChangesForSingleRoot(SvnChangesCollector.java:97)
at jetbrains.buildServer.buildTriggers.vcs.svn.SvnChangesCollector.collectChanges(SvnChangesCollector.java:89)
at jetbrains.vcs.api.services.collectChanges.CollectRepositoryChangesByCheckoutRulesAdapter.collectChanges(CollectRepositoryChangesByCheckoutRulesAdapter.java:4)
at jetbrains.vcs.api.services.collectChanges.CollectChangesBetweenRepositoriesAdapter.collectChanges(CollectChangesBetweenRepositoriesAdapter.java:4)
at jetbrains.vcs.api.services.collectChanges.CollectChangesServiceImpl$CollectChangesInSingleRepository.perform(CollectChangesServiceImpl.java:6)
at jetbrains.vcs.api.services.collectChanges.CollectChangesServiceImpl.runAttempts(CollectChangesServiceImpl.java:19)
at jetbrains.vcs.api.services.collectChanges.CollectChangesServiceImpl.collectChanges(CollectChangesServiceImpl.java:15)
... 23 more
jetbrains.buildServer.vcs.VcsException: Externals problem: processExternalsChanges, externals URL: http://xxx.xxx.xxx.xxx/svn/mygameloader, version: -1, path:gameloader: recursion detected
at jetbrains.buildServer.buildTriggers.vcs.svn.SvnConnection.processAllExternals(SvnConnection.java:256)
at jetbrains.buildServer.buildTriggers.vcs.svn.SvnConnectionOnServer.processExternalsChanges(SvnConnectionOnServer.java:124)
at jetbrains.buildServer.buildTriggers.vcs.svn.SvnConnectionOnServer.addChanges(SvnConnectionOnServer.java:95)
at jetbrains.buildServer.buildTriggers.vcs.svn.SvnIncludeRuleChangeCollector.collectChanges(SvnIncludeRuleChangeCollector.java:52)
at jetbrains.buildServer.vcs.utils.VcsPluginUtil.collectBuildChanges(VcsPluginUtil.java:43)
at jetbrains.buildServer.buildTriggers.vcs.svn.SvnChangesCollector.collectChangesForSingleRoot(SvnChangesCollector.java:97)
at jetbrains.buildServer.buildTriggers.vcs.svn.SvnChangesCollector.collectChanges(SvnChangesCollector.java:89)
at jetbrains.vcs.api.services.collectChanges.CollectRepositoryChangesByCheckoutRulesAdapter.collectChanges(CollectRepositoryChangesByCheckoutRulesAdapter.java:4)
at jetbrains.vcs.api.services.collectChanges.CollectChangesBetweenRepositoriesAdapter.collectChanges(CollectChangesBetweenRepositoriesAdapter.java:4)
at jetbrains.vcs.api.services.collectChanges.CollectChangesServiceImpl$CollectChangesInSingleRepository.perform(CollectChangesServiceImpl.java:6)
at jetbrains.vcs.api.services.collectChanges.CollectChangesServiceImpl.runAttempts(CollectChangesServiceImpl.java:19)
at jetbrains.vcs.api.services.collectChanges.CollectChangesServiceImpl.collectChanges(CollectChangesServiceImpl.java:15)
at jetbrains.vcs.api.services.collectChanges.CollectChangesServiceProvider$1.collectChanges(CollectChangesServiceProvider.java:5)
at jetbrains.buildServer.buildTriggers.vcs.LoadChanges.collectChangesForCheckoutRules(LoadChanges.java:51)
at jetbrains.buildServer.buildTriggers.vcs.LoadChanges.collectChanges(LoadChanges.java:13)
at jetbrains.buildServer.buildTriggers.vcs.LoadChanges.run(LoadChanges.java:2)
at jetbrains.buildServer.buildTriggers.vcs.VcsRootChangesLoader$1.run(VcsRootChangesLoader.java:2)
at jetbrains.buildServer.util.NamedThreadFactory.executeWithNewThreadName(NamedThreadFactory.java:103)
at jetbrains.buildServer.buildTriggers.vcs.VcsRootChangesLoader.loadChanges(VcsRootChangesLoader.java:62)
at jetbrains.buildServer.buildTriggers.vcs.VcsRootChangesLoader.loadChanges(VcsRootChangesLoader.java:98)
at jetbrains.buildServer.vcs.impl.VcsChangesLoaderImpl$2.run(VcsChangesLoaderImpl.java:2)
at jetbrains.buildServer.vcs.impl.VcsChangesLoaderImpl$3.call(VcsChangesLoaderImpl.java:2)
at jetbrains.buildServer.serverSide.impl.ImmediateFuture.get(ImmediateFuture.java:4)
at jetbrains.buildServer.serverSide.impl.ImmediateFuture.get(ImmediateFuture.java:3)
at jetbrains.buildServer.vcs.impl.VcsChangesLoaderImpl.waitForTasksToComplete(VcsChangesLoaderImpl.java:236)
at jetbrains.buildServer.vcs.impl.VcsChangesLoaderImpl.tryLoadChanges(VcsChangesLoaderImpl.java:206)
at jetbrains.buildServer.serverSide.impl.VcsModificationChecker$1$1.run(VcsModificationChecker.java:14)
at jetbrains.buildServer.util.NamedThreadFactory.executeWithNewThreadName(NamedThreadFactory.java:103)
at jetbrains.buildServer.serverSide.impl.VcsModificationChecker$1.run(VcsModificationChecker.java:3)
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)
===========



Can someone explain why TeamCity would perform an illegal operation in Subversion in that scenario?


Thank you in advance

Please sign in to leave a comment.