CVS Checkouts Intermittent


I have noticed TW4307 but note that the thread did not seem to be resolved...

I am using Teamcity 8.1.2 (29993) and performing builds by checking out content from a CVSNT (Linux) server.

Most of the nearly (40) builds complete successfully nightly. Every once in a while, I have a build that fails due to a checkout that does not provide all of the known project content from the repository (folders and/or files missing). Simply redoing the build (with no other changes) results in a success. The same projects do not fail every night, sometimes nothing fails. But in every failure, something unusual happens with the checkouts.

I have also noted that in some builds that fail, a checkout will be generated, the CVSNT server will respond to the checkout request and begin to process the next checkout request before providing the first objects being requested. For example:
[23:05:31]   CHECK OUT   center\Loop_detector_firmware\source
[23:05:31]A subdirectory or file cxx already exists.
[23:05:31]   CHECK OUT   center\Loop_detector_firmware\TDD
[23:05:31]U center/Loop_detector_firmware/source/Diablo.mcp
[23:05:31]cvs [checkout aborted]: [23:05:31] cannot rename file CVS/Entries.Extra.Backup to CVS/Entries.Extra: No such file or directory
[23:05:31]cvsnt server: Updating center/Loop_detector_firmware/source
[23:05:31]U center/Loop_detector_firmware/source/Diablo_debug.mcp
[23:05:31]U center/Loop_detector_firmware/source/Makefile
[23:05:31]   CHECK OUT   center\common_firmware\source
[23:05:31]U center/Loop_detector_firmware/source/README.txt
[23:05:31]U center/Loop_detector_firmware/source/_eeprom.asm
[23:05:31]U center/Loop_detector_firmware/source/abstract_int_main.c
[23:05:31]U center/Loop_detector_firmware/source/abstract_int_main.h
[23:05:31]U center/Loop_detector_firmware/source/bind_auth.c
[23:05:31]U center/Loop_detector_firmware/source/bind_auth.h

Note that loop_detector_firmware\source was being checked out, (a mkdir command tells me that the build folder was already created) then another checkout for loop_detector_firmware\TDD, we get an object checked out from source, it can't find the CVS/Entries.Extra file (!? it's there!!!!), we see checkouts from the source folder, checks out ANOTHER folder common_firmware\source and THEN we see loop_detector_firmware/source objects being returned.

The clock between the teamcity server and the CVSNT server are in agreement.

No one is changing anything between a build that fails and a subsequent rebuild.

No one is doing "local" modifications, and interferring with the server.

The CVSNT server has been used for about 10 years and this condition has never been seen.

Any ideas why we are seeing such confusion with checkouts and objects being returned?


Please sign in to leave a comment.