Changing Clearcase Server Checkout to Agent Checkout

I have a functioning build in TC 6.0 that is using Server checkout. Since I have several large files used in our builds I was looking to improve performance by changing it to do checkouts on the Agent. I figured it would be as simple as changing the checkout to Agent but when it runs I get this error:

[12:06:10]: [Updating sources: agent side checkout...]
     Failed  to perform checkout on agent: Checkout directory  "..\..\..\BuildStaging\Patching\RTRServer\rtdb_server\Realtime_Clients\Installers"  does not match View full path  "M:\teamcity_pd_voyager_ga_sustaining_vu\ProducerDirector\Realtime_Clients\Installers.  "Updating sources interrupted.
jetbrains.buildServer.vcs.clearcase.agent.VcsValidationException:  Checkout directory  "..\..\..\BuildStaging\Patching\RTRServer\rtdb_server\Realtime_Clients\Installers"  does not match View full path  "M:\teamcity_pd_voyager_ga_sustaining_vu\ProducerDirector\Realtime_Clients\Installers.  "Updating sources interrupted.at jetbrains.buildServer.vcs.clearcase.agent.ConvensionBasedSourceProvider.report(ConvensionBasedSourceProvider.java:116)
at jetbrains.buildServer.vcs.clearcase.agent.ConvensionBasedSourceProvider.validatePaths(ConvensionBasedSourceProvider.java:82)
at jetbrains.buildServer.vcs.clearcase.agent.ConvensionBasedSourceProvider.updateSources(ConvensionBasedSourceProvider.java:49)
at jetbrains.buildServer.agent.impl.patch.ProjectSourcesOnAgent.checkoutSources(ProjectSourcesOnAgent.java:72)
at jetbrains.buildServer.agent.impl.patch.UpdateSourcesFromAgent.updateSources(UpdateSourcesFromAgent.java:60)
at jetbrains.buildServer.agent.impl.patch.UpdateSourcesBuildStageBase.doSourceUpdate(UpdateSourcesBuildStageBase.java:90)
at jetbrains.buildServer.agent.impl.patch.UpdateSourcesBuildStageBase.doRecoverableStage(UpdateSourcesBuildStageBase.java:58)
at jetbrains.buildServer.agent.impl.buildStages.startStages.RecoverableBuildStage.doBuildStage(RecoverableBuildStage.java:74)
at jetbrains.buildServer.agent.impl.buildStages.BuildStagesExecutor$1.callStage(BuildStagesExecutor.java:31)
at jetbrains.buildServer.agent.impl.buildStages.BuildStagesExecutor$1.callStage(BuildStagesExecutor.java:29)
at jetbrains.buildServer.agent.impl.buildStages.StagesExecutor.callRunStage(StagesExecutor.java:68)
at jetbrains.buildServer.agent.impl.buildStages.StagesExecutor.doStages(StagesExecutor.java:31)
at jetbrains.buildServer.agent.impl.buildStages.BuildStagesExecutor.doStages(BuildStagesExecutor.java:24)
at jetbrains.buildServer.agent.impl.BuildRunAction.doStages(BuildRunAction.java:65)
at jetbrains.buildServer.agent.impl.BuildRunAction.runBuild(BuildRunAction.java:48)
at jetbrains.buildServer.agent.impl.BuildAgentImpl.doActualBuild(BuildAgentImpl.java:250)
at jetbrains.buildServer.agent.impl.BuildAgentImpl.access$100(BuildAgentImpl.java:48)
at jetbrains.buildServer.agent.impl.BuildAgentImpl$1.run(BuildAgentImpl.java:223)
at java.lang.Thread.run(Unknown Source)





So what do I have to change with my VCS roots?
6 comments
Comment actions Permalink

What checkout directory is specified on the Version Control Settings page in the build configuration administration area?

0
Comment actions Permalink

I've left that field blank and using the default location for the check-out directory.

I should mention that I'm using a dynamic Clearcase view, with clearcase 7.0.1

0
Comment actions Permalink

I'm seeing a similar error with ClearCase 7.1.0 and TeamCity 6.0.1.

Error while applying patch: Checkout  directory "46bc61f4d6c6a4c7\vobs_dx\si" does not match View full path  "\h\uxoslnxbld2\0\dx_8.5_int_snap\vobs_dx\si. "Updating sources  interrupted.
« Hide stacktrace

jetbrains.buildServer.vcs.clearcase.agent.VcsValidationException:  Checkout directory "46bc61f4d6c6a4c7\vobs_dx\si" does not match View  full path "\h\uxoslnxbld2\0\dx_8.5_int_snap\vobs_dx\si. "Updating  sources interrupted.
at jetbrains.buildServer.vcs.clearcase.agent.ConvensionBasedSourceProvider.report(ConvensionBasedSourceProvider.java:116)
at jetbrains.buildServer.vcs.clearcase.agent.ConvensionBasedSourceProvider.validatePaths(ConvensionBasedSourceProvider.java:82)
at jetbrains.buildServer.vcs.clearcase.agent.ConvensionBasedSourceProvider.updateSources(ConvensionBasedSourceProvider.java:49)
at jetbrains.buildServer.agent.impl.patch.ProjectSourcesOnAgent.checkoutSources(ProjectSourcesOnAgent.java:72)
at jetbrains.buildServer.agent.impl.patch.UpdateSourcesFromAgent.updateSources(UpdateSourcesFromAgent.java:60)
at jetbrains.buildServer.agent.impl.patch.UpdateSourcesBuildStageBase.doSourceUpdate(UpdateSourcesBuildStageBase.java:90)
at jetbrains.buildServer.agent.impl.patch.UpdateSourcesBuildStageBase.doRecoverableStage(UpdateSourcesBuildStageBase.java:58)
at jetbrains.buildServer.agent.impl.buildStages.startStages.RecoverableBuildStage.doBuildStage(RecoverableBuildStage.java:74)
at jetbrains.buildServer.agent.impl.buildStages.BuildStagesExecutor$1.callStage(BuildStagesExecutor.java:31)
at jetbrains.buildServer.agent.impl.buildStages.BuildStagesExecutor$1.callStage(BuildStagesExecutor.java:29)
at jetbrains.buildServer.agent.impl.buildStages.StagesExecutor.callRunStage(StagesExecutor.java:68)
at jetbrains.buildServer.agent.impl.buildStages.StagesExecutor.doStages(StagesExecutor.java:31)
at jetbrains.buildServer.agent.impl.buildStages.BuildStagesExecutor.doStages(BuildStagesExecutor.java:24)
at jetbrains.buildServer.agent.impl.BuildRunAction.doStages(BuildRunAction.java:65)
at jetbrains.buildServer.agent.impl.BuildRunAction.runBuild(BuildRunAction.java:48)
at jetbrains.buildServer.agent.impl.BuildAgentImpl.doActualBuild(BuildAgentImpl.java:250)
at jetbrains.buildServer.agent.impl.BuildAgentImpl.access$100(BuildAgentImpl.java:48)
at jetbrains.buildServer.agent.impl.BuildAgentImpl$1.run(BuildAgentImpl.java:223)
at java.lang.Thread.run(Thread.java:619)


In my case, the TeamCity server is running on Linux accessing a snapshot view (/h/uxoslnxbld2/0/...) and the agent is Windows which cannot see that location (/h/uxoslnxbld2/...).



0
Comment actions Permalink

You have to set your "Checkout directory" equal to "Relative path within the view" of your ClearCase VCS root in the siplest case.

0
Comment actions Permalink

Not sure that I understand what you're saying.  Are you saying that we need to point the checkout directory to the appropriate view (directory pathname) on the agent?

Personally, I would like to see some support for it to automatically create the snapshot view if it doesn't exist or if you're using a dynamic view, it would do a "clt startview" and then be able to reference the pathname.

On Windows, we tend to create snapshot views because dynamic views are very slow on Windows (compared with Unix).  With 20+ agents, this means creating the snapshot view on each machine and repeating the process whenever we have a new release.

So what does the TC agent do with the directory pathname?  Does it run "cleartool update" so the agent uses clearcase to do the updates?

0
Comment actions Permalink

HI Bill,

>>Are you saying that we need to point the checkout directory to the appropriate view (directory pathname) on the agent?
I mean you have to set the "Checkout directory"(Version Control Settings) equal to "Relative path within the view" of your ClearCase VCS root as far as a ClearCase's view has additional directories segment(s) in it's directories structre(VOB name at least). See http://youtrack.jetbrains.net/issue/TW-13863 and related issues & threads for more details.

>>Personally, I would like to see some support for it to automatically  create the snapshot view if it doesn't exist or if you're using a  dynamic view, it would do a "clt startview" and then be able to  >>reference the pathname.
A new ClearCase snapshot view that based on Config Specs of parent view(located on TeamCity server) will be created on the agent when appropriate build is starting.

>>Does it run "cleartool update" so the agent uses clearcase to do the updates?
Yes it does.

BR,
Konstantin

0

Please sign in to leave a comment.