[cvsnt] ssh hanging

Ian Brown ian.brown at printsoft.de
Thu Nov 17 09:33:08 GMT 2005


When doing a large checkout with cvsnt from the command line, the
process will sometimes hang. The client is actually running in Windows
2000 within a Virtual PC (win2k is the guest OS and WinXP is the host
OS).
Funnily, I never get such a hang when using wincvs to do the checkout -
only when doing the checkout from the command line.

I think that in the case that cvs command line would hang, wincvs
reports a communication error 'Unexpected response from server'. In any
case, I think the problem is that the server hangs up the connection and
the plink code cannot cope with this.

I change the timeouts in the plink code from INFINITE to 10 seconds and
no I never see the hang, but I occasionally get a error when doing the
checkout. This is okay because I can detect the error and simply re-try
the checkout.
The system is an automated build system, so a hang is really bad - it
stops the process until an engineer can manually attend to it. An error,
however, is okay because a script can easily detect it and re-try the
operation.

The patch for my change is below. Please think about it and maybe
implement something similar.

Index: plink_cvsnt.c
===================================================================
RCS file: /usr/local/cvs/cvsnt/plink/plink_cvsnt.c,v
retrieving revision 1.1.2.5
diff -r1.1.2.5 plink_cvsnt.c
249c249
< 	WaitForSingleObject(odata->eventback, INFINITE);
---
> 	WaitForSingleObject(odata->eventback, 10000);
377c377
< 	n = WaitForMultipleObjects(4, handles, FALSE, INFINITE);
---
> 	n = WaitForMultipleObjects(4, handles, FALSE, 10000);


Ian




More information about the cvsnt mailing list