[cvsnt-commits] Cvs Commit: cvsnt

arthur.barrett at march-hare.com arthur.barrett at march-hare.com
Mon May 10 04:19:29 BST 2010


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.


CVSROOT:	/cvs
Module name:	cvsnt
Changes by:	arthur.barrett at march-hare.com		Mon May 10 03:20:30 2010
On host:	2002:71c0:aa2:1:20c:29ff:fe0d:b365

Directory: cvsnt/lockservice

M LockParse.cpp	CVSNT_BRANCH_2_8_01_3761	1.8.2.39.6.8.2.2 -> 1.8.2.39.6.8.2.3	Bug Id: 5918

Directory: cvsnt/protocols

M sspi.cpp	CVSNT_BRANCH_2_8_01_3761	1.25.2.49.6.6 -> 1.25.2.49.6.6.2.1	Bug Id: 5918

Directory: cvsnt/src

M cvs.h	CVSNT_BRANCH_2_8_01_3761	1.93.2.208.6.29.2.3 -> 1.93.2.208.6.29.2.4	Bug Id: 5918
M lock.cpp	CVSNT_BRANCH_2_8_01_3761	1.26.2.49.8.2.2.2 -> 1.26.2.49.8.2.2.3	Bug Id: 5918
M main.cpp	CVSNT_BRANCH_2_8_01_3761	1.71.2.151.6.54.2.2 -> 1.71.2.151.6.54.2.3	Bug Id: 5918
M rcs.cpp	CVSNT_BRANCH_2_8_01_3761	1.80.2.214.4.54.2.1 -> 1.80.2.214.4.54.2.2	Bug Id: 5918
M server.cpp	CVSNT_BRANCH_2_8_01_3761	1.106.2.210.6.99.2.4 -> 1.106.2.210.6.99.2.5	Bug Id: 5918

Directory: cvsnt/windows-NT

M config.h	CVSNT_BRANCH_2_8_01_3761	1.55.2.60.6.5.4.2 -> 1.55.2.60.6.5.4.3	Bug Id: 5918
M filesubr.cpp	CVSNT_BRANCH_2_8_01_3761	1.24.2.45.8.2.2.5 -> 1.24.2.45.8.2.2.6	Bug Id: 5918
M win32.cpp	CVSNT_BRANCH_2_8_01_3761	1.72.2.150.6.44.2.5 -> 1.72.2.150.6.44.2.6	Bug Id: 5918

Log message:
Server modified:
* pass filename/mode/FILE*  to do_lock_file() and then to do_lock_server() 
   if do_lock_server() loops trying to establish a lock then:
      close file before sleep; open after sleep
* lock server now tracks the process id (PID) of the client process 
    (sill also tracks the IP address and username)
* if username blank (eg: 'at' jobs 'SYSTEM') gives real name to lock server 

These new settings control the behaviour:
LockFailReopen = 1 - close/open file handle between lock retries
RCSOpenRetry   = 30 - number of times to retry the open
MoveSleepWait  = 100 - on windows - number of milliseconds between movefileex()
MoveSleepRetry = 300 - on windows - number of movefileex retries

I've tested this on Windows XP x64 with a copy of the Paris+Scotty 
repositories with three (3) concurrent rtag operations.  This 
combination previously would not finish either due to 
'cannot rename file' errors or other timeouts.  With the new 
default values this test completes successfully.

Analysis of servertrace shows that MoveFileEx() still fails from 
time-to-time but a single 1/10th of a second wait is usually sufficient 
to rectify it (an wait's of less than 1 second are not reported to the 
user).  Normal deadlock waits occur more often but with three 
concurrent tags starting at the same time on a mulit-cpu server 
this is to be expected.

Example:
cvsnt rtag: [13:05:32] waiting for SYSTEM on acerW64lap's lock (#4 pid=5416) in /cvsrepo/cvsnt/build.h,v
cvsnt rtag: [13:05:33] obtained lock in build.h,v
cvsnt rtag: [13:05:33] waiting for SYSTEM on acerW64lap's lock (#4 pid=5416) in /cvsrepo/cvsnt/config.sub,v
cvsnt rtag: [13:05:35] obtained lock in config.sub,v





More information about the cvsnt-commits mailing list