Richard M. Stallman writes: > > I am trying to bring about a fix for the bad interaction between > CVS and SSH that causes data to be lost? > > See <http://lists.gnu.org/archive/html/bug-cvs/2002-07/msg00423.html> for > a good explanation. > > After studying that message, I think I understand the problem. It > occurs when the stdout of cvs equals the stderr of ssh. When ssh sets > O_NONBLOCK on that descriptor, cvs gets confused.
The key thing to understand is that O_NONBLOCK does not affect the *descriptor*, it affects the underlying *file*. Thus, if other descriptors are bound to the same file, they also become non-blocking. > This problem has gone unfixed because neither CVS nor SSH is doing > something clearly wrong. Nonetheless, the combination of the two > are doing something wrong, so we need to fix it somewhere. To my mind, SSH *is* doing something clearly wrong. See: <http://lists.gnu.org/archive/html/bug-cvs/2004-08/msg00166.html> > Couldn't this be fixed easily by changing cvs to handle EAGAIN > in a simple way when outputting to stdout? No, because CVS uses stdio for output to stdout and thus the response to errors is out of its control. And most extant stdio libraries do not handle EAGAIN. -Larry Jones In a minute, you and I are going to settle this out of doors. -- Calvin _______________________________________________ Bug-cvs mailing list Bug-cvs@gnu.org http://lists.gnu.org/mailman/listinfo/bug-cvs