[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: cvs corruption during tag operation

From: Todd Denniston
Subject: Re: cvs corruption during tag operation
Date: Mon, 06 Feb 2006 11:15:16 -0500
User-agent: Mozilla Thunderbird 1.0.7-1.1.fc4 (X11/20050929)

Jeremy Todd wrote:

I've managed to reproduce data corruption which is apparently caused by a
cvs tag operation. I'm working on finding the exact cause of the bug, but
here's what I've done thus far:

We're running CVS client 1.11.17 from a Windows XP machine, I downloaded the
binary a while ago, possible from WinCVS or Cygwin, but I'm not sure. Our
CVS server is running FreeBSD 5.4 and we connect to it via ssh (our CVSROOT
looks like :ext:x@y:/cvsroot).

We have a fairly large (7138 files, 657 MB) module containing both text and
binary files. Our build scripts check out this module and tags it fairly
often (perhaps 20-30 times each day). We noticed data corruption in a file
in this module, and I was able to reproduce it with a perl script that does
something like this:

while(true) {
  cvs co X
  cd X
  cvs tag test-n (where n is the current iteration)
  cd ..
  move X Y
  cvs co X
  diff -r X Y

after about 90 iterations the diff will fail. In every case, a single
character in one of the files is modified by turning ON the second bit. In
other words the hex value of the character is increased by 2.

Any insights on how to debug further would be most appreciated. I wasn't
able to find any similar known bugs (at least not for cvs versions as late
as 1.11.17). Unfortunately it takes about 6 hours to reproduce, so it's
going to be a challenge to say the least.

Is the "drive" on the XP box, where you are checking out to, on a network server or physically on the XP box?

Have you noticed the fault "clustering" in any one group of files?
i.e., files in a particular subdirectory, or large files?
If you have then you might be able to reduce the test set to only a little more than that group, and thus test a bit quicker.

It might also be good to check and make sure that when you finally get each of the failures that no one else was doing ANY cvs operations at the same time (i.e. combine users, chewing up memory and disk space faults).

Are you only able to replicate the problem while on the XP box client?
i.e., try the script on a Unix box too.

Can you replicate the problem while on other XP boxes?

when the local diff faults, does `cvs diff` show anything on the offending file? (you may need to update the time stamp on the file.)

Good luck, these can be "fun" problems.

Todd Denniston
Crane Division, Naval Surface Warfare Center (NSWC Crane)
Harnessing the Power of Technology for the Warfighter

reply via email to

[Prev in Thread] Current Thread [Next in Thread]