[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: (ITS#8263) Broken cursor tracking in mdb_cursor_put()
- To: openldap-its@OpenLDAP.org
- Subject: Re: (ITS#8263) Broken cursor tracking in mdb_cursor_put()
- From: hyc@symas.com
- Date: Wed, 07 Oct 2015 05:37:47 +0000
- Auto-submitted: auto-generated (OpenLDAP-ITS)
h.b.furuseth@usit.uio.no wrote:
> Full_Name: Hallvard B Furuseth
> Version: mdb.master, 8b46dcc26d1e9897ab1da3a4a164cad4a4479a52
> OS: Linux x86_64
> URL: ftp://ftp.openldap.org/incoming/Hallvard-Furuseth-151005.c
> Submission from: (NULL) (81.191.45.5)
> Submitted by: hallvard
>
>
> The test program catches several cursor tracking bugs.
> It works when the DUPSORT sub-DB is created immediately:
Yes, when using a fake page we init the subcursor with the fake page. When
using a full sub-DB we left the subcursor pointing to the sub-DB but otherwise
uninit'd.
>
> $ ./a.out 1500
> mn_flags = 6 <repeated 22 times>
Fixed now in mdb.master.
Note: It's tempting to just merge the new xcursor_init2 function into
xcursor_init1 since they're very similar, but that's a bad idea. The
xcursor_init1 function really is meant for init'ing an unused cursor; it's
expected that immediately after, a full cursor-positioning action will occur.
xcursor_init2 is meant for xcursors that have already been positioned, in
which case their physical position is updated in order to keep their logical
position unchanged.
--
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/