tags 607874 + pending patch
severity 607874 normal
thanks

On Thu, 2010-12-23 at 14:46 +0200, Teodor wrote:
> We're conducted some automated tests for 5000 connections to the CVS server
> (for rebuilding some internal resources) and after increasing the maximum
> number of connections to 60 we found that on 'stop' there were 182 'cvs'
> processes still running (though cvsd has quit). We believe we have a bug in
> our software too by not closing the connection to the CVS server, but also
> the cvsd server should not leave processes behind after stop.

The hanging connections may also be a problem in cvs. I'm not sure but I
guess some deadlock situations can occur in cvs. Even for read-only
operations it uses locking. If you really need to support that many
connections and read-only operation is good enough for you, you could
have a look at http://arthurdejong.org/cvsd/faq.html#readonly which
should increase performance significantly.

> I had to 'pkill cvs' to have a clean start but this should be probably done
> by the init script or by 'cvsd' process on exit.

I've applied the patch below which should stop any remaining processes
started by cvsd on stop. Note that this is not done on restart because
it also terminates any ongoing transactions. This also means that you
may leave processes hanging around after restart and stop.

--- debian/cvsd.init    28 Feb 2010 19:45:46 -0000      1.18
+++ debian/cvsd.init    23 Dec 2010 16:14:43 -0000
@@ -58,6 +58,8 @@
                     $PFO \
                     --name cvsd
   log_end_msg $?
+  # kill any remaining child processes
+  [ -f "$PIDFILE" ] && kill -s TERM -`cat "$PIDFILE"` > /dev/null 2>&1
   [ -n "$PIDFILE" ] && rm -f $PIDFILE
   ;;
 restart|force-reload)

In general, I'm not sure that a daemon should terminate all ongoing
requests on exit though. If a write operation is in progress, it may be
better to complete the operation and leave the repository (including
locks) in a consistent state.

Anyway, the above patch will be in the next release. I don't think it's
urgent enough to do quickly though and as such the fix will most likely
not land in squeeze.

Thanks for reporting this.

-- 
-- arthur - [email protected] - http://people.debian.org/~adejong --

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to