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.
Rahul, I'm not the programmer here, but my basic understanding of your test code is that it is quite likely that you are going to hit a deadlock at some point. Can you supply the entire perl script ? It'd make it easier for us to try and reproduce. Do you start with an empty repository and the script imports some files? If so a sample "starting" repository would be needed too. Does your script/stress test plan simply run these tests or does it check that the results were what was intended? eg: if you "cvs rtag" a module do you then check that every file in that module received that tag? If not then it is of dubious value in my opinion. CVSNT has a lock server and CVS does not - so your CVS test could simply be silently failing - giving you a false test result. If CVSNT is hanging and therefore notifying you that a deadlock has occurred - I would find that preferable to silently failing and me thinking things have been tagged/committed when they haven't. I'm not saying this *is* the problem - I'm just thinking of "good reasons" for CVSNT to fail this test. I would prefer that CVSNT e-mailed the administrator when a deadlock occurs, but that sure doesn't happen and I quite frankly don't know what does. Sybase hangs the client processes until the administrator resolves the deadlock... If it is still possible to re-run your tests then doing so with the lock daemon running in debug mode may produce enough information for us to locate the code: Linux: cvslockd -d Windows (stop the CVSNT lock service, then): cvslock -test Also I notice from the earlier information that you posted that you may have cygwin installed on the server - this is definitely not recommended - please ensure that you do not have any cygwin environment variables, and cygwin CVS and RCS utilities are not in the PATH set for the user PI\Rahul (which the server is set to run as). Finally - you asked about the current stable version versus the commercial version, which is explained in this FAQ: http://www.march-hare.com/cvspro/faq/faq1.asp#9r Regardless of whether this problem occurs in a commercial release we would like to see if we can reproduce it in 2.5.03 build 2151 since that will eventually be the basis for another release. Thanks, Arthur Barrett -----Original Message----- From: Rahul Bhargava [mailto:coderobo at gmail.com] Sent: 15 February 2006 08:08 To: Arthur Barrett Cc: cvsnt at cvsnt.org cvsnt downloads at march-hare.com @CVSNT on Twitter CVSNT on Facebook Subject: Re: [cvsnt] Stress Tests results for CVSNT/CVS/Subversion Arthur Barrett wrote: Rahul, Thanks for that info - I notice that all clients are connecting as the same user - can you post more details as to what operations the clients were performing and on what files, or post the perl script? Is there a chance a genuine deadlock occurred? Here are the cvs commands that were fed by the clients to the server: cvs("ci -m change1 $fname"); cvs("-z7 log $fname"); cvs("stat $fname"); cvs("-z7 up $fname"); cvs("diff -r1 $fname"); cvs("tag -F lalal$fcnt $fname"); cvs("stat -v $fname"); cvs("editors $fname"); cvs("history $fname"); cvs("watchers $fname"); sys("echo 77 >> $fname"); cvs("ci -m change2 $fname"); cvs("-z6 diff -r1 $fname"); cvs("rtag -b branch_$i-$C $MODULE"); cvs("rlog $MODULE"); if ($i%10 == 0 && $C%25 == 0) { $bigfile = makeNewFile("10M"); sys("mv $fname $fname.bak"); sys("mv $bigfile $fname"); cvs("-z7 ci -m grow $fname"); sys("rm $fname"); cvs("up $fname"); sys("mv $fname.bak $fname"); cvs("ci -m shrink $fname"); } The cvs() function just invokes a system call to run "cvs $command". The same command sequence worked fine on CVS 1.12.x. So it is not a client issue imho. After 15 mins the cvs lock daemon freezes up chewing up 100% CPU on an rtag. Sometimes we have seen it with a commit command also. But 9 out of 10 times its with a rtag operation that we see the freeze. Regards, Arthur -----Original Message----- From: Rahul Bhargava [mailto:coderobo at gmail.com] Sent: Wednesday, 15 February 2006 5:25 AM To: Arthur Barrett Cc: cvsnt at cvsnt.org cvsnt downloads at march-hare.com @CVSNT on Twitter CVSNT on Facebook Subject: Re: [cvsnt] Stress Tests results for CVSNT/CVS/Subversion Arthur Barrett wrote: Thanks Rahul, Can you please supply as much information about the test as possible, including what CVSROOT (ie: what protocol), what plugins were enabled on Protocol used - :pserver No plugins were enabled on the server. No encryption, no emulate cvs 1.12 etc We tested the server on Windows & Linux. And as already mentioned, Windows 2003 SP1 was the OS on Win box and Linux 2.6.5-gentoo-r1 #1 SMP on the Linux box. 2-CPU on each server machine. the server, what server options were enabled (eg: require encryption, emulate CVS 1.11 etc), what specific OS was used on the server (eg: windows 2003 SP2), whether there was a virus scanner running on the No virus scanner either :-) These are all server class machines with no junk. server (and if so what brand) and if the "repository" was excluded from the scanner, as well as the location of the repository and the temp directory on the server and they type of disk it was on. The results of "cvsdiag" ran on the server would also help. [rahul at pi /<2>Program Files/CVSNT]$ ./cvsdiag.exe CVSNT Diagnostic output ----------------------- Server version: 2.5.03 (Scorpio) Build 2151 OS Version: Windows 2003 5.2.3790 (Service Pack 1) CVS Service installed: Yes LockService installed: Yes :pserver: installed: Yes :sserver: installed: Yes :gserver: installed: Yes :server: installed: Yes :ssh: installed: Yes :sspi: installed: Yes :ext: installed: Yes Installation Path: C:\Program Files\CVSNT\ Repository 0 Path: c:\cygwin\home\rahul\cvsroot-nt Repository 0 Name: /stresscvsnt Repository 1 Path: (no value) Repository 1 Name: (no value) Repository 2 Path: (no value) Repository 2 Name: (no value) Repository 3 Path: (no value) Repository 3 Name: (no value) CVS Temp directory: C:\WINDOWS\TEMP CA Certificate File: (no value) Private Key File: (no value) Local Users Only: No Default LockServer: localhost:2402 Disable Reverse DNS: No Server Tracing: No Case Sensitive: No Server listen port: 2401 Compatibility (Non-cvsnt clients): Report old CVS version: No Hide extended status: No Emulate co -n bug: Yes Ignore client wrappers: No Compatibility (CVSNT clients): Report old CVS version: No Hide extended status: No Emulate co -n bug: No Ignore client wrappers: No Default domain: Force run as user: PI\rahul Temp dir readable by current user: Yes Repository0 readable by current user: Yes Temp dir writable by current user: Yes AV files detected: (none) Installed Winsock protocols: 1003: MSAFD Tcpip [TCP/IP] 1004: MSAFD Tcpip [UDP/IP] 1001: RSVP UDP Service Provider 1002: RSVP TCP Service Provider Very importantly we'd like to know if each client used the same build of CVSNT, if the clients were a mix of Linux/Windows what versions they All clients used - Concurrent Versions System (CVSNT) 2.5.03 (Scorpio) Build 2221 (client/server) Clients were running on Linux machines (Kernel Linux 2.6.5-gentoo-r1) were and if they too had virus scanning, and the location of the workspaces (eg: local disk (NTFS/FAT), network disk). No virus scanning. Workspaces were on an ext3 filesystem. Finally what usernames were used - were they random for each connection, did each client use a specific username? All clients used the same user name (user1). Thanks, Arthur Barrett -----Original Message----- From: Rahul Bhargava [mailto:coderobo at gmail.com] Sent: 09 February 2006 11:43 To: Arthur Barrett Cc: cvsnt at cvsnt.org cvsnt downloads at march-hare.com @CVSNT on Twitter CVSNT on Facebook Subject: Re: [cvsnt] Stress Tests results for CVSNT/CVS/Subversion Hello Arthur - Arthur Barrett wrote: Rahul, Knowing which build of CVSNT 2.5.03 you used would also be of assistance. Concurrent Versions System (CVSNT) 2.5.03 (Scorpio) Build 2221 (client/server) Regards, Arthur Barrett -----Original Message----- From: cvsnt-bounces at cvsnt.org on behalf of Rahul Bhargava Sent: Thu 2/9/2006 6:44 AM To: cvsnt at cvsnt.org cvsnt downloads at march-hare.com @CVSNT on Twitter CVSNT on Facebook Cc: Subject: [cvsnt] Stress Tests results for CVSNT/CVS/Subversion FYI, Just wanted to share some stress test results with the CVSNT community. We recently undertook an extensive stress test exercise with the objective of understanding how CVSNT, CVS, Subversion servers behave under high client load. We created a bank of client machines (Windows 2k3, Linux 2.6.x) to generate client load. The workload that each client iterated through was the usual cvs/cvsnt/subversion command set that a development organization would see - import, update, checkout, log , diff, tag, rtag, status etc Each client would repeatedly execute the same workload with or without a wait time. With 50 clients pounding on a CVSNT server (2.5.03) running on a Windows 2003 Server machine with 1GB RAM, 2GB SWAP, 2xPentium 4 CPUs (2.8GHz Dell server class machine), we saw that after about 15 minutes of stress the CVSNT Lock Daemon service would freeze, the CPUs would be maxed out at 100%. When the freeze happened, almost always the command `rtag' would be the one running. We would see several clients trying to `rtag' the same module leading up to the freeze. Sometimes add/commit would trigger similar issue. The clients were running the same CVSNT version also (2.5.03). Shutting down the lock daemon service immediately brought the CPUs back to idling state. We tried the same stress run on a Linux 2.6.5, 2 CPU machine. The clients were running on Win/Linux and the CVSNT 2.5.03 server was running on the Linux box. Similar results - the server would go on for 15 mins - 2 hours before hanging the Linux machine. The CPUs would be maxed out and the only way out would be to reboot the Linux box. Next we tried the same experiment with CVS (1.11.21) and we could run the stress for days without any issue. The CPU usage would be fairly low with and we didn't see any freezes or hangs. Similar experience with the latest Subversion release (1.3.0) - we could run the stress for days without any problems. The CPU consumption was a lot higher than vanilla CVS. Subversion `svnserve' processes would consume around 80% of the CPUs when the stress was on. Other than that, checkouts were noticeably slower with subversion as the number of revisions grew. _______________________________________________ cvsnt mailing list cvsnt at cvsnt.org cvsnt downloads at march-hare.com @CVSNT on Twitter CVSNT on Facebook http://www.cvsnt.org/cgi-bin/mailman/listinfo/cvsnt https://www.march-hare.com/cvspro/en.asp#downcvs