cvsnt - possible deadlock while tagging

Krzysztof Nowak <[email protected]> Mon, 20 Jul 2009 09:48:08 +0200
Newsgroups gmane.comp.version-control.cvs.windows-nt.user
Message-ID <[email protected]>
Hello,

We have installed cvsnt on Linux machine and we have found deadlock 
while two tagging operations where issued by two clients on the whole 
repository tree.
We have investigated the issue and it seems that (probably) there is 
possibility, that while tagging there is lock upgrade:

We think that two processes gained full read lock, and then both of them 
tried to obtain write lock which cannot succeed.
So clearly it is a possible deadlock, if there is a lock upgrade from 
Full Read Lock to Full Write Lock.

Moreover the comment in request_lock() function does not match with 
actual implementation.
For example there is possibility to get Full Write Lock if there are 
Advisory Read Locks obtained by other clients, but is should not
be possible according to the comment in source code (version 2.5.04.3236).

Could you give some explanation of the locking strategy? Or just fix the 
main problem: lock upgrade should not be allowed, because it can cause 
deadlocks.

Best regards,
Krzysztof Nowak
_______________________________________________
cvsnt mailing list
[email protected]
http://www.cvsnt.org/cgi-bin/mailman/listinfo/cvsnt

Upgrade to CVS Suite for more features and support: http://march-hare.com/cvsnt/