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

Re: LMDB: issue with mdb_cursor_del



On Thu, 2017-10-19 at 08:12 +0200, Hallvard Breien Furuseth wrote:
> On 18/10/17 22:44, timur.kristof@gmail.com wrote:
> > On Wed, 2017-10-18 at 20:08 +0300, Леонид Юрьев wrote:
> > > Sure this will not create problems when working without
> > > MDB_WRITEMAP.
> > > But in MDB_WRITEMAP mode duplicates in the dirty-list seems may
> > > leads
> > > some side affects.
> > > Therefore in MDBX I had planned to completely rewrite
> > > freelist_save().
> > 
> > I think simply accepting -1 would fix this problem for everyone but
> > users of MDB_WRITEMAP in which case it doesn't affect the outcome
> > because a different function is called: mdb_mid2l_append which
> > cannot
> > return -1.
> 
> No, Leo is right.  Duplicates in the freelist give a broken DB.
> 

I didn't suggest duplicates. I suggested accepting -1 from insert()
which merely indicated that the page is already on the dirty list. I
does not make a duplicate.

Or am I getting it wrong?

> A cleaner fix is for freelist_save() to quit messing with loose
> pages and just reserve room for them, like it does for me_pghead.
> 
> I've reported ITS#8756 <http://www.openldap.org/its/?findid=8756>.
> 
> --
> Hallvard