[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
protocol bug seeks inspection :-).
From: |
K. Richard Pixley |
Subject: |
protocol bug seeks inspection :-). |
Date: |
Thu, 26 Jun 2003 15:49:24 -0700 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4) Gecko/20030617 |
Hey all.
I'm trying to chase down a bug that shows up in both 1.11.6 as well as
1.12.1 (and several other versions I happen to have lying about). The
bug is consistent and highly reproducible. It shows on at least
redhat-8.0 and freebsd-4.7. It does NOT show when using a local
repository but it does show with :fork:.
As it's difficult to understand the cvs protocol without a LOT of
background context, I'm hoping someone will notice an obvious flaw by
inspection. I've been around all three instances of cvs for a day now
and I still don't even know which one is misbehaving.
Anyone see anything obviously wrong? Any suggestions on what to look
for or where?
A quick overview of the symptom and working directory follows. Please
note: running "./cvs-1.12.1 co -P nomdocs/Makefile" will successfully
check out the file.
--rich
rpixley@freebsd.releng.nominum.com> CVS_CLIENT_LOG=cvsbroke ./cvs-1.12.1
-t co -P nomdocs/Makefile nomdocs/dcs/Makefile
-> parse_cvsroot ( :fork:/net/storage/storage0/proj/nominum/cvs )
-> main loop with CVSROOT=:fork:/net/storage/storage0/proj/nominum/cvs
-> safe_location ( where=(null) )
-> Forking server: ./cvs-1.12.1 server
S-> do_module (nomdocs/Makefile, Updating, , )
S-> do_module (nomdocs/dcs/Makefile, Updating, , )
S -> safe_location ( where=(null) )
S-> do_module (nomdocs/Makefile, Updating, , )
cvs-1.12.1 server: existing repository
/net/storage/storage0/proj/nominum/cvs/CVSROOT/Emptydir does not match
/net/storage/storage0/proj/nominum/cvs/nomdocs
cvs-1.12.1 server: ignoring module nomdocs/Makefile
S-> do_module (nomdocs/dcs/Makefile, Updating, , )
S -> fopen(/net/storage/storage0/proj/nominum/cvs/CVSROOT/history,a)
S -> Reader_Lock(/net/storage/storage0/proj/nominum/cvs/nomdocs/dcs)
S -> Lock_Cleanup()
-> Lock_Cleanup()
-> Lock_Cleanup()
rpixley@freebsd.releng.nominum.com> ls -lasR cvsbroke* nomdocs
2 -rw-rw-r-- 1 rpixley rpixley 813 Jun 26 11:12 cvsbroke.in
2 -rw-rw-r-- 1 rpixley rpixley 1241 Jun 26 11:12 cvsbroke.out
nomdocs:
total 8
2 drwxrwxr-x 4 rpixley rpixley 512 Jun 26 11:11 .
2 drwxrwxr-x 16 rpixley rpixley 1024 Jun 26 11:12 ..
2 drwxrwxr-x 2 rpixley rpixley 512 Jun 26 11:11 CVS
2 drwxrwxr-x 3 rpixley rpixley 512 Jun 26 11:10 dcs
nomdocs/CVS:
total 10
2 drwxrwxr-x 2 rpixley rpixley 512 Jun 26 11:11 .
2 drwxrwxr-x 4 rpixley rpixley 512 Jun 26 11:11 ..
0 -rw-rw-r-- 1 rpixley rpixley 0 Jun 26 11:11 Entries
2 -rw-rw-r-- 1 rpixley rpixley 12 Jun 25 10:54 Entries.Log
0 -rw-rw-r-- 1 rpixley rpixley 0 Jun 25 10:50 Entries.Static
2 -rw-rw-r-- 1 rpixley rpixley 8 Jun 25 10:36 Repository
2 -rw-rw-r-- 1 rpixley rpixley 45 Jun 25 10:36 Root
nomdocs/dcs:
total 8
2 drwxrwxr-x 3 rpixley rpixley 512 Jun 26 11:10 .
2 drwxrwxr-x 4 rpixley rpixley 512 Jun 26 11:11 ..
2 drwxrwxr-x 2 rpixley rpixley 512 Jun 26 11:10 CVS
2 -rw-rw-r-- 1 rpixley rpixley 535 May 29 01:32 Makefile
nomdocs/dcs/CVS:
total 10
2 drwxrwxr-x 2 rpixley rpixley 512 Jun 26 11:10 .
2 drwxrwxr-x 3 rpixley rpixley 512 Jun 26 11:10 ..
2 -rw-rw-r-- 1 rpixley rpixley 41 Jun 26 11:10 Entries
0 -rw-rw-r-- 1 rpixley rpixley 0 Jun 25 10:54 Entries.Static
2 -rw-rw-r-- 1 rpixley rpixley 12 Jun 25 10:54 Repository
2 -rw-rw-r-- 1 rpixley rpixley 45 Jun 25 10:54 Root
rpixley@freebsd.releng.nominum.com> shar cvsbroke* nomdocs/CVS/*
nomdocs/dcs/CVS/*
# This is a shell archive. Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file". Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
# cvsbroke.in
# cvsbroke.out
# nomdocs/CVS/Entries
# nomdocs/CVS/Entries.Log
# nomdocs/CVS/Entries.Static
# nomdocs/CVS/Repository
# nomdocs/CVS/Root
# nomdocs/dcs/CVS/Entries
# nomdocs/dcs/CVS/Entries.Static
# nomdocs/dcs/CVS/Repository
# nomdocs/dcs/CVS/Root
#
echo x - cvsbroke.in
sed 's/^X//' >cvsbroke.in << 'END-of-cvsbroke.in'
XRoot /net/storage/storage0/proj/nominum/cvs
XValid-responses ok error Valid-requests Checked-in New-entry Checksum
Copy-file Updated Created Update-existing Merged Patched Rcs-diff Mode
Mod-time Removed Remove-entry Set-static-directory
Clear-static-directory Set-sticky Clear-sticky Template Clear-template
Notified Module-expansion Wrapper-rcsOption M Mbinary E F MT
Xvalid-requests
XUseUnchanged
XGlobal_option -t
XArgument nomdocs/Makefile
XArgument nomdocs/dcs/Makefile
XDirectory .
X/net/storage/storage0/proj/nominum/cvs
Xexpand-modules
XArgument -N
XArgument -P
XArgument --
XArgument nomdocs/Makefile
XArgument nomdocs/dcs/Makefile
XDirectory nomdocs/dcs
X/net/storage/storage0/proj/nominum/cvs/nomdocs/dcs
XStatic-directory
XEntry /Makefile/1.9///
XUnchanged Makefile
XDirectory .
X/net/storage/storage0/proj/nominum/cvs
Xco
END-of-cvsbroke.in
echo x - cvsbroke.out
sed 's/^X//' >cvsbroke.out << 'END-of-cvsbroke.out'
XValid-requests Root Valid-responses valid-requests Repository Directory
Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified
Is-modified UseUnchanged Unchanged Notify Questionable Case Argument
Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set
Gssapi-authenticate expand-modules ci co update diff log rlog add remove
update-patches gzip-file-contents status rdiff tag rtag import admin
export history release watch-on watch-off watch-add watch-remove
watchers editors init annotate rannotate noop version
Xok
XE S-> do_module (nomdocs/Makefile, Updating, , )
XModule-expansion nomdocs/Makefile
XE S-> do_module (nomdocs/dcs/Makefile, Updating, , )
XModule-expansion nomdocs/dcs/Makefile
Xok
XE S -> safe_location ( where=(null) )
XE S-> do_module (nomdocs/Makefile, Updating, , )
XE cvs-1.12.1 server: existing repository
/net/storage/storage0/proj/nominum/cvs/CVSROOT/Emptydir does not match
/net/storage/storage0/proj/nominum/cvs/nomdocs
XE cvs-1.12.1 server: ignoring module nomdocs/Makefile
XE S-> do_module (nomdocs/dcs/Makefile, Updating, , )
XE S -> fopen(/net/storage/storage0/proj/nominum/cvs/CVSROOT/history,a)
XE S -> Reader_Lock(/net/storage/storage0/proj/nominum/cvs/nomdocs/dcs)
XE S -> Lock_Cleanup()
Xerror
END-of-cvsbroke.out
echo x - nomdocs/CVS/Entries
sed 's/^X//' >nomdocs/CVS/Entries << 'END-of-nomdocs/CVS/Entries'
END-of-nomdocs/CVS/Entries
echo x - nomdocs/CVS/Entries.Log
sed 's/^X//' >nomdocs/CVS/Entries.Log << 'END-of-nomdocs/CVS/Entries.Log'
XA D/dcs////
END-of-nomdocs/CVS/Entries.Log
echo x - nomdocs/CVS/Entries.Static
sed 's/^X//' >nomdocs/CVS/Entries.Static <<
'END-of-nomdocs/CVS/Entries.Static'
END-of-nomdocs/CVS/Entries.Static
echo x - nomdocs/CVS/Repository
sed 's/^X//' >nomdocs/CVS/Repository << 'END-of-nomdocs/CVS/Repository'
Xnomdocs
END-of-nomdocs/CVS/Repository
echo x - nomdocs/CVS/Root
sed 's/^X//' >nomdocs/CVS/Root << 'END-of-nomdocs/CVS/Root'
X:fork:/net/storage/storage0/proj/nominum/cvs
END-of-nomdocs/CVS/Root
echo x - nomdocs/dcs/CVS/Entries
sed 's/^X//' >nomdocs/dcs/CVS/Entries << 'END-of-nomdocs/dcs/CVS/Entries'
X/Makefile/1.9/Thu May 29 08:32:10 2003//
END-of-nomdocs/dcs/CVS/Entries
echo x - nomdocs/dcs/CVS/Entries.Static
sed 's/^X//' >nomdocs/dcs/CVS/Entries.Static <<
'END-of-nomdocs/dcs/CVS/Entries.Static'
END-of-nomdocs/dcs/CVS/Entries.Static
echo x - nomdocs/dcs/CVS/Repository
sed 's/^X//' >nomdocs/dcs/CVS/Repository <<
'END-of-nomdocs/dcs/CVS/Repository'
Xnomdocs/dcs
END-of-nomdocs/dcs/CVS/Repository
echo x - nomdocs/dcs/CVS/Root
sed 's/^X//' >nomdocs/dcs/CVS/Root << 'END-of-nomdocs/dcs/CVS/Root'
X:fork:/net/storage/storage0/proj/nominum/cvs
END-of-nomdocs/dcs/CVS/Root
exit