[Date Prev][Date Next]
Re: (ITS#5442) slapd_rq not locked before use bugfix
> On Sat, 29 Mar 2008, email@example.com wrote:
>> firstname.lastname@example.org 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/