[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: (ITS#5442) slapd_rq not locked before use bugfix



rein@tollevik.no wrote:
> On Sat, 29 Mar 2008, ando@sys-net.it wrote:
>> rein@basefarm.no wrote:
>>> I was seeing random failures of the test050-syncrepl-multimaster test.  One of
>>> the failures was that it went into a tight loop traversing a circular runqueue
>>> it had managed to create in slapd_rq.task_list.  It seems as this was caused by
>>> missing mutex locks around accesses to slapd_rq, which the patch uploaded to
>>> ftp://ftp.openldap.org/incoming/slapd_rq_lock.patch fixes.
>>>
>>> Before I applied this patch the test failed after being run a few times, with it
>>> it has now passed 100 times and is still counting.
>> locks in back-bdb/config.c should be pointless, as modifications to the
>> configuration should only occur while all threads are paused.  The rest
>> makes sort of sense, but I'd leave it to Howard.

Ignoring the ITS#5403 changes, I don't see anything here that isn't 
config-related, therefore it's all running single-threaded.

Of the "relevant" changes in syncrepl.c, I note that three out of the four 
chunks of the patch are in code that is only run when using cn=config to 
delete a syncrepl configuration, and test050 never performs that operation. 
The remaining chunk only takes affect when adding syncrepl config, and again, 
slapd is single-threaded for that.

I've also run test050 thru hundreds of iterations without any issue, without 
these patches. If there's a problem in test050, I don't believe it's in this code.
-- 
   -- Howard Chu
   Chief Architect, Symas Corp.  http://www.symas.com
   Director, Highland Sun        http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP     http://www.openldap.org/project/