Imagine a Compile Job with a ClearCase snapshot view which can roam to several slaves. On each slave there is a snapshot which was updated when the job was last executed. Now you change the load rule of the job because a developer needs a new library. Then the Job will get eventually routed to a slave where the view is not up-to-date. Unfortunately the view will only get the new files loaded and not get an update of the rest of that view. This is especially deadly if you change a file with a version number for instance (AssemblyInfo.cs, .rc file or Product.wxs for installers) during the build because you won't check out the latest version of that file and it is impossible to check in.
Excerpt from the log when adding a load rule:
Added load rule : \MCT_Comp\LIC_PROXY_API
14:48:47 Running cleartool update, this operation may take a while
14:48:47 [GNSS_Server1.3x] $ cleartool update -force -overwrite -log C:\Snapshots\updatelogs\121108144847+0100.updt -add_loadrules MCT_Comp\LIC_PROXY_API
14:48:56 # ClearCase snapshot view update log
14:48:56 # Update session parameters:
14:48:56 FormatVersion: 4
14:48:56 SnapshotView: C:\Snapshots\GNSS_Server1.3x
14:48:56 StartTime: 2012-11-08T14:48:46+01:00
14:48:56 UserID: sa_mu_1sp1cm-build@1SP1SLAVE5
14:48:56 ProcessID: 3096
14:48:56 ConfigSpecSet: FALSE
14:48:56 PreviewOnly: FALSE
14:48:56 PreserveVOBTimes: FALSE
14:48:56 UpdateHijackedFiles: TRUE
14:48:56 RenameHijackedFiles: FALSE
14:48:56 # Actions taken to update the view:
14:48:56 UpdatePname: \MCT_Comp\LIC_PROXY_API
14:48:56 New: MCT_Comp\LIC_PROXY_API\Cpp\inc\rs_lic_client_api.h \main\2
14:48:56 New: MCT_Comp\LIC_PROXY_API\Cpp\inc\RSLicErrorCodes.h \main\1
14:48:56 New: MCT_Comp\LIC_PROXY_API\Cpp\inc\RSLicResult.h \main\1
14:48:56 New: MCT_Comp\LIC_PROXY_API\Cpp\lib\vc100\release\RSLicenseClient.lib \main\1
14:48:56 # Update session status:
14:48:56 EndTime: 2012-11-08T14:48:55+01:00
14:48:56 BytesCopied: 69713240
14:48:56 CancelledByUser: FALSE
14:48:56 [INFO] updt file name: 'null'
The error message I get later on because the checked out version of the .wxs file is not the latest one:
cleartool.exe checkin -identical -nwarn -ptime "Product.wxs"
("." to accept default)
Update to version 126.96.36.199
Checkin comments for "Product.wxs":cleartool: Error: The most recent version on branch "\main\br_v1.3x" is not the predecessor of this version.
cleartool: Error: Unable to check in "Product.wxs".
Maybe there is only the call to
cleartool setcs -current
missing is performed normally to update the view?!?