cgrzemba / 389-ds-base

Forked from 389-ds-base 5 years ago
Clone

d810847 Ticket 47931 - memberOf & retrocl deadlocks

Authored and Committed by mreynolds 8 years ago
    Ticket 47931 - memberOf & retrocl deadlocks
    
    Bug Description:  When concurrently updating multiple backends the
                      memberOf and retrocl plugins can deadlock on each
                      other.  This is caused by the required retrocl lock,
                      and the db lock on the changenumber index in the
                      retrocl db.
    
    Fix Description:  Added scoping to the retrocl that allows subtrees/suffixes
                      to be included or excluded.  Also moved the existing
                      memberOf scoping outside of its global lock.
    
                      Also improved the memberOf config copying to be consistent
                      and more efficient.  Improved the memberOf scoping attributes
                      to be multivalued.  And, properly valdiated new config
                      settings in the preop valdiation function, instead of the
                      "apply config" function.
    
    https://fedorahosted.org/389/ticket/47931
    
    Valgrind: passed
    
    Reviewed by: nhosoi(Thanks!)
    
    (cherry picked from commit fd959ac864d6d86d24928bc2c6f097d1a6031ecd)