[Date Prev][Date Next]
Re: (ITS#5077) syncrepl.add_cmp() infinite loop on swapped values
Donn Cave wrote:
> It looks easy enough to me to code up an order independent version that
> will actually work. I would initialize adds and dels with old & new
> berval pointers, iterate through dels and adds (nested), and clear
> both on match. The code is easier to follow and empirically I see one
> fewer matches in the cases I tested it on. But that's just a test of
> the algorithm - I haven't sorted out what needs to be done at the end of
> the function where mcur etc. are modified depending on i == j.
The only way to do this right, without dying on an O(n^2) algorithm, is to sort
both arrays first and then walk through them in order as the original code did.
If you want to submit such a patch, please do. I don't have a lot of time to
focus on this at the moment.
-- 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/