Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.0.2
-
None
-
Linux Suse 9.3
Description
When the working directory is empty, requesting a "build now" for a project with a :scm:cvs:ext: method fails.
The CVS is configured with external SSH protocol, with publick key authentication, and checking out from command line (using the same cvs command as in the continuum log) works fine.
The failure message is:
Provider message: The cvs command failed.
Command output: -------------------------------------------------------------------------------
cvs checkout: in directory 52:
cvs checkout: cannot open CVS/Entries for reading: No such file or directory
cvs [checkout aborted]: cannot write : No such file or directory
-------------------------------------------------------------------------------
The full continuum console log says:
jvm 1 | 2006-01-25 15:19:20,013 [SocketListener0-1] INFO ContinuumStore:jdo - project :52
jvm 1 | 2006-01-25 15:19:20,018 [SocketListener0-1] INFO ContinuumStore:jdo - nb bd for project 52 : 1 - bd id : 62
jvm 1 | 2006-01-25 15:19:20,018 [SocketListener0-1] INFO ContinuumStore:jdo - getDefaultBuildDefinition : 5ms
jvm 1 | 2006-01-25 15:19:20,068 [SocketListener0-1] INFO Continuum - Enqueuing 'SampleTestCVS' (Build definition id=62).
jvm 1 | 2006-01-25 15:19:20,349 [Thread-1] INFO ContinuumScm - Checking out project: 'SampleTestCVS', id: '52' to '/srv/build/continuum/apps/continuum/working-directory/52'.
jvm 1 | 2006-01-25 15:19:20,350 [Thread-1] DEBUG ScmManager - Working directory: /srv/build/continuum/apps/continuum/working-directory/52
jvm 1 | 2006-01-25 15:19:20,350 [Thread-1] DEBUG ScmManager - Command line: cvs -f -d :ext:continuum@vts2server:/home/cvs -q checkout -d 52 SANDBOX/sampleTestCVS
jvm 1 | 2006-01-25 15:19:20,419 [SocketListener0-1] INFO ContinuumStore:jdo - project :52
jvm 1 | 2006-01-25 15:19:20,426 [SocketListener0-1] INFO ContinuumStore:jdo - nb bd for project 52 : 1 - bd id : 62
jvm 1 | 2006-01-25 15:19:20,426 [SocketListener0-1] INFO ContinuumStore:jdo - getDefaultBuildDefinition : 6ms
jvm 1 | 2006-01-25 15:19:20,611 [Thread-1] WARN ContinuumScm - Error while checking out the code for project: 'SampleTestCVS', id: '52' to '/srv/build/continuum/apps/continuum/working-directory/52'.
jvm 1 | 2006-01-25 15:19:20,611 [Thread-1] WARN ContinuumScm - Command output: cvs checkout: in directory 52:
jvm 1 | cvs checkout: cannot open CVS/Entries for reading: No such file or directory
jvm 1 | cvs [checkout aborted]: cannot write <CVS/Template file>: No such file or directory
jvm 1 |
jvm 1 | 2006-01-25 15:19:20,611 [Thread-1] WARN ContinuumScm - Provider message: The cvs command failed.
jvm 1 | 2006-01-25 15:19:21,426 [Thread-1] INFO Notifier:mail - No mail recipients for 'SampleTestCVS'.
Note - The "cannot open CVS/Entries" error could also be related to a failed authentication.
The same happens if I add a new project.
My SCM url is a cvs:ext: url with a ssh protocol, configured with CVS_RSH="ssh" in /etc/profiles
Manually reproducing the bug
----------------------------------------
However, I just made this test:
I went on the command line in the folder
/srv/build/continuum/apps/continuum/working-directory
if I delete the build directory (which is 52 in my case)
working-directory> rm -rf 52
working-directory> cvs -f -d :ext:continuum@server:/home/cvs -q checkout -d 52 SANDBOX/sampleTestCVS
cvs correctly creates the 52 directory and does the checkout
U 52/.classpath
U 52/.cvsignore
U 52/.project
...
U 52/xdocs/navigation.xml
If I run the same command again, it works.
BUT, if I delete only the content of the 52 directory, and perform a cvs checkout, it fails, with the same CVS/Entries error as above:
working-directory> rm -rf 52/*
working-directory> cvs -f -d :ext:continuum@vts2server:/home/cvs -q checkout -d 52 SANDBOX/sampleTestCVS
cvs checkout: in directory 52:
cvs checkout: cannot open CVS/Entries for reading: No such file or directory
cvs [checkout aborted]: cannot write <CVS/Template file>: No such file or directory
So might the problem be that the directory 52 is already created by continuum before doing the checkout?
In fact if I go to the working directory and delete all subdirectories, then request a build with Build Now in continuum, the build fails with the CVS/Entries error, while if I delete the working directory content and perform a cvs checkout with the same command line it works.