[cvsnt] cvsnt - possible deadlock while tagging

Krzysztof Nowak k.nowak at osmosys.tv
Mon Jul 20 08:48:08 BST 2009


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


More information about the cvsnt mailing list