[cvsnt] CVS occasionally hangs with SSPI protocol

Mark Weaver mark at npsl.co.uk
Tue Apr 29 19:45:08 BST 2003


Typically when doing "cvs add *", sample output:

[c:\cvs\3rdparty\fop\build\site\images]cvs add *
cvs add: warning: directory CVS specified in argument
cvs add: but CVS uses CVS for its own purposes; skipping CVS directory
cvs server: cannot add special file `CVS'; skipping
cvs server: scheduling file `document.jpg' for addition
cvs server: scheduling file `EmbeddingExampleFO2PDF.png' for addition
cvs server: scheduling file `EmbeddingExampleObj2PDF.png' for addition
cvs server: scheduling file `EmbeddingExampleObj2XML.png' for addition
cvs server: scheduling file `EmbeddingExampleXML2FO.png' for addition
cvs server: scheduling file `EmbeddingExampleXML2PDF.png' for addition
cvs server: scheduling file `group-logo.gif' for addition
cvs server: scheduling file `layout.jpg' for addition
cvs server: scheduling file `logo.jpg' for addition
cvs server: scheduling file `track.png' for addition
cvs server: use 'cvs commit' to add these files permanently

Then cvs hangs.  I'm having trouble debugging this, but this has been a
consistent issue with cvsnt 1.11.something, 2.0.1, 2.0.2, 2.0.3.  I've built
a debug client, and AFAICT it is getting stuck here (sorry if this gets a
bit mangled):

NTDLL.DLL!77f88e73()
msafd.dll!_WSPRecv at 36()  + 0x6104
ws2_32.dll!_WSARecv at 28()  + 0x6c
wsock32.dll!_recv at 16()  + 0x31
sspi_protocol.dll!tcp_read(void * data=0x00e80d7b, int length=645)  Line 228
+ 0x19	C
sspi_protocol.dll!sspi_read_data(const protocol_interface *
protocol=0x1001c678, void * data=0x00e80d7b, int length=645)  Line 266 + 0xd
C
cvs.exe!client_buffer_input(void * closure=0x00946440, char *
data=0x00e80d7b, int need=1, int size=645, int * got=0x0012f240)  Line 577 +
0x18	C
cvs.exe!buf_read_line(buffer * buf=0x00946470, char * * line=0x0012f3a4, int
* lenp=0x0012f398)  Line 818 + 0x1d	C
cvs.exe!read_line(char * * resultp=0x0012f4ac)  Line 652 + 0x14	C
cvs.exe!get_server_responses()  Line 3222 + 0x9	C
cvs.exe!get_responses_and_close()  Line 3335 + 0x5	C
cvs.exe!add()  Line 288 + 0x5	C
cvs.exe!cvsguiglue_main(int argc=2, char * * argv=0x00947148)  Line 1189 +
0x10	C
cvs.exe!main(int argc=3, char * * argv=0x00943018)  Line 253 + 0x2a	C
cvs.exe!mainCRTStartup()  Line 400 + 0x11	C
KERNEL32.DLL!_BaseProcessStart at 4()  + 0x3d

i.e. it is waiting for the server to send something back.  The connection
remains established, and the server seems uninterested in responding
further.  At a push, I could go and install a debugger on the server and see
where that is getting stuck, but before I do, does anyone have any clue as
to why this would happen?

btw, killing the process "resolves" the problem -- the files/directories
have been correctly added, it's just that the hang is rather irritating.

Thanks,

Mark



More information about the cvsnt mailing list