abbra / slapi-nis

Forked from slapi-nis 6 years ago
Clone

61c5aca Bug 1751295: (2) When sync-repl is enabled, slapi-nis can deadlock during retrochanglog trimming

Authored and Committed by tbordaz 4 years ago
    Bug 1751295: (2) When sync-repl is enabled, slapi-nis can deadlock during retrochanglog trimming
    
    Bug Description:
    	Note: same description as original fix for 1751295
    
    	When sync-repl is enabled, it enables retroCL that can lead to the following deadlock scenario.
    
    	Since 1435663, slapi-nis lock is acquired from be_preop to be_postop.
    	So during a write operation on domain, retroCL is updated and being a BE_TXN_POST it holds
    	slapi-nis lock when it tries to acquire retroCL backend lock.
    	If at the same time an operation on the retroCL (like retroCL trimming) acquire retroCL backend
    	lock then during its BE_TXN_POST it tries to acquire slapi-nis lock.
    
    	This is a common scenario, when there are updates on several backends, there is a chance
    	that two updates are acquiring the backends lock in the opposite order.
    	    Here the backends are slapi-nis and retroCL.
    
    Fix Description:
    	All slapi-nis plugin callbacks (be_pre/post and betxn_pre/post) should ignore
    	updates on suffixes like cn=changelog, cn=config and cn=schema.
    	Up to now, only be_pre/post checked if the update can be ignored.
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1751295
    
        
file modified
+9 -29
file modified
+34 -0
file modified
+1 -0