[cvsnt] Re: Running Norton Anti-Virus On the CVSNT Server

Tony Hoyle tmh at nodomain.org
Thu Dec 26 22:04:40 GMT 2002


Gates, Donald T wrote:

> 
> Hmm. Well, since I AM running Symantec Anti-Virus Corporate Edition v.7x,
> I could test it. What was your testing methodology? Do you have a test
> script(s) that I can execute/perform?
> 
Basically when the error kicks in any new file added to the repository will
have a corrupt diff entry for each new version committed.  It seems once it
starts happening it happens 100% of the time.

Since it's only repeatable on machines running NAV and doesn't seem to
repeat using the free trial edition I've resorted to going through the code
and saying 'what if <x> went wrong'.  Every single fopen/rename/read is
error checked as far as I can see, so you'll get a trace if there's an FS
error...  the only conclusion from the data that diff is generating is that
the file isn't returning an error but is returning incorrect data. 
Basically CVS writes out two temp files, which are the old and new state of
the file, then calls 'diff' on them to generate the deltas for entering
into the RCS file.   Either the write or the subsequent read isn't doing
what it should do.

The best way to test would be to first trigger it, then disable stuff until
the repository starts behaving sanely again.  I'd start with the 'worst'
situation (NAV fully enabled on both client and server) as that seems most
likely to involve the trigger condition.

Of course the low number of reports of this tend to suggest it's not as
simple as 'Install NAV and it breaks'.  There could be other things
interacting as well.

This is what one person did to repeat it:

>echo a line >newfile

cvs server: scheduling file `newfile' for addition
cvs server: use 'cvs commit' to add this file permanently

>cvs ci
cvs commit: Examining .
RCS file: C:/Docume~2/cvs/MyDocu~1/cvsroot/website/newfile,v
done
Checking in newfile;
C:/Docume~2/cvs/MyDocu~1/cvsroot/website/newfile,v  <--  newfile
initial revision: 1.1
done

>echo another line >>newfile

>cvs ci -m"Bye Bye"
cvs commit: Examining .
Checking in newfile;
C:/Docume~2/cvs/MyDocu~1/cvsroot/website/newfile,v  <--  newfile
new revision: 1.2; previous revision: 1.1
done


... you can use extra '-t' arguments to cvs for extra verbosity, so when/if
you trigger it then a verbose trace would tell me quite a bit to see
exactly where it's failing and put in a fatal abort if I can detect it.

Tony




More information about the cvsnt mailing list