[cvsnt] Creating new directory in master/slave server setup fails

Tony Eva teva at Airspan.com
Thu Oct 29 12:22:58 GMT 2009


Community technical support mailing list was retired 2010 and replaced with a professional technical support team. For assistance please contact: Pre-sales Technical support via email to sales@march-hare.com.


We're experiencing problems when trying to add a new directory to an existing repository in a
dual server (master/proxy) configuration.  All other commands work well, it's just adding a
new directory that fails.

Setup:
-----

Systems are Ubuntu Linux (client, master server, proxy server), CVSNT version is reported as:

Client: Concurrent Versions System (CVSNT) 2.5.04 (Zen) Build 3125 (RC 8) (client/server)
Server: Concurrent Versions System (CVSNT) 2.5.04 (Zen) Build 3125 (RC 8) (client/server)

We have a master and proxy server setup, with the repository on the master being rsynced
back to the proxy after each command that modifies the repository (after a short delay to
avoid a series of commands triggering multiple parallel rsyncs).  The commands that trigger
an rsync are (taken from the postcommand script):

add|admin|authserver|chacl|chown|commit|edit|import|init|passwd|rchacl|rchown|remove|rename|rtag|server|tag|unedit|watch

All other commands are ignored as far as master/slave sync is concerned.

The system works well for normal operations (checkout/update/edit/commit etc) and when
adding/removing files to *existing* directories.

Problem:
-------

A user on the slave (proxy) server tries to add a new directory to a repository.  The series
of test commands is:

$ mkdir test2
$ touch test2/a.txt
$ cvs add test2
cvs [add aborted]: there is a version in test2 already
$

Nothing is added to the repository on the master server or the slave/proxy server.  With trace,
the output is as follows (the test2 directory is being added in existing directory tools/rxap
in the testrep repository):

$ cvs -ttt add test2
... (snipped) ...
11:55:19:   -> wrap_add(*.xls -kb, 0, 0, 0, 0)
11:55:19:   -> wrap_add(*.zip -kb, 0, 0, 0, 0)
11:55:19:   -> wrap_add(*.Z -kb, 0, 0, 0, 0)
11:55:19:   -> Requesting server cvswrappers
11:55:19:   -> Requesting server cvsrc (read-cvsrc2)
11:55:19:   -> Parsing global cvsrc started
11:55:19:   -> Parsing global cvsrc finished
11:55:19:   -> Name_Repository((null),)
11:55:19:   -> Name_Repository dup tmp is len
11:55:19:   -> Name_Repository dup tmp is now len
11:55:19:   -> Name_Repository open CVS/Repository
11:55:19:   -> Name_Repository opened CVS/Repository ok so read a line
11:55:19:   -> Name_Repository closed CVS/Repository
11:55:19:   -> Name_Repository read 1 tools/rxap

11:55:19:   -> Name_Repository read 2 tools/rxap
11:55:19:   -> Name_Repository isabsolute( tools/rxap )?
11:55:19:   -> Name_Repository isabsolute( tools/rxap )!
11:55:19:   -> Name_Repository Sanitize_Repository_Name( /home/cvs/testrep/tools/rxap )!
11:55:19:   -> Name_Repository return ( /home/cvs/testrep/tools/rxap )!
11:55:19:   -> ParseTag_Dir((null),<something>,<something>,3,)
11:55:19:   -> Create_Admin (test2, test2, /home/cvs/testrep/tools/rxap/test2, , , 0, 0)
cvs [add aborted]: there is a version in test2 already
$

The same series of commands to add the test directory works fine when performed on the master
server and the directory is added and rsynced without errors.

Any ideas or suggestions would be welcome.



More information about the cvsnt mailing list
Download the latest CVSNT, TortosieCVS, WinCVS etc. for Windows 8 etc.
@CVSNT on Twitter   CVSNT on Facebook