After upgrading cvs on cvs.pld.org.pl (server running under Linux,
accessed by pserver method) we were suffering from frequent lockups
of the most often used modules. It turned out, that when module was
locked, $EDITOR (vi) was spawned on _server_.

Then I found the way to lock module deterministically (with cvs 0.11.2
on Linux, both on client and server side):
- get some file from cvs, change it
- type "cvs commit file"
- when editor is spawned to type commit message - just exit
- cvs client asks what to do - choose "continue"
- after above, editor is spawned on server and whole module where file
  was placed is locked.

My fix was simple - just set use_editor=0 in server code, before passing
control to actual cvs functions. It's working. See attached patch.


-- 
Jakub Bogusz    http://prioris.mini.pw.edu.pl/~qboosh/
PLD Linux       http://www.pld.org.pl/
--- cvs-1.11.2/src/server.c.orig        Tue Jul  2 19:22:18 2002
+++ cvs-1.11.2/src/server.c     Tue Jul  2 19:25:43 2002
@@ -2791,6 +2791,10 @@
            sleep (secs);
        }
 
+       /* Don't fork editor on server! It could occur if no commit message
+        * was passed. */
+       use_editor = 0;
+
        exitstatus = (*command) (argument_count, argument_vector);
 
        /* Output any partial lines.  If the client doesn't support

Reply via email to