Issue 7505 - liblmdb can fail with MDB_PAGE_FULL on a delete
Summary: liblmdb can fail with MDB_PAGE_FULL on a delete
Status: VERIFIED FIXED
Alias: None
Product: LMDB
Classification: Unclassified
Component: liblmdb (show other issues)
Version: unspecified
Hardware: All All
: --- normal
Target Milestone: ---
Assignee: OpenLDAP project
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-01-27 18:01 UTC by Howard Chu
Modified: 2020-03-12 15:54 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this issue.
Description Howard Chu 2013-01-27 18:01:52 UTC
Full_Name: Howard Chu
Version: RE24/master
OS: 
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (78.155.233.73)
Submitted by: hyc


This is the last remaining FIXME in liblmdb/mdb.c...

mdb_rebalance() is always called after a delete operation. If the tree needs
balancing and it needs to move a node from one page to its sibling, the parent
page's separator keys will need updating. If the new separator key is larger
than the old one, it may not fit into the parent page, and mdb_update_key() will
return MDB_PAGE_FULL.

Instead of giving up, mdb_update_key() should invoke mdb_page_split() to make
room for the new key.
Comment 1 Howard Chu 2013-01-27 18:03:52 UTC
changed notes
changed state Open to Test
moved from Incoming to Software Bugs
Comment 2 Sung Ruo 2013-01-29 17:36:30 UTC
Hi Howard:
Our test program has been running for about a day now and the fix is holding up good still.
We used to reproduce this in about 1~2 days.  So I'll let it runs for another day.

Will update again sometime tomorrow.

Thanks.

--Sung

Comment 3 Quanah Gibson-Mount 2013-01-29 18:53:23 UTC
--On Tuesday, January 29, 2013 5:36 PM +0000 sruo@vmware.com wrote:

> Hi Howard:
> Our test program has been running for about a day now and the fix is
> holding up good still. We used to reproduce this in about 1~2 days.  So
> I'll let it runs for another day.
>
> Will update again sometime tomorrow.

Hi Sung,

I don't know if you saw, but Howard made a tweak to the 7505 commit 
yesterday.  If you could try current mdb.master from git, that would be 
helpful.  It also has a commit addressing ITS#7511.

Thanks,
Quanah

--

Quanah Gibson-Mount
Sr. Member of Technical Staff
Zimbra, Inc
A Division of VMware, Inc.
--------------------
Zimbra ::  the leader in open source messaging and collaboration

Comment 4 Howard Chu 2013-01-30 02:30:22 UTC
Sung Ruo wrote:
> Hi Howard:
> Our test program has been running for about a day now and the fix is holding up good still.
> We used to reproduce this in about 1~2 days.  So I'll let it runs for another day.
>
> Will update again sometime tomorrow.

That's good news, thanks for the followup.

-- 
   -- Howard Chu
   CTO, Symas Corp.           http://www.symas.com
   Director, Highland Sun     http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP  http://www.openldap.org/project/

Comment 5 Sung Ruo 2013-01-31 20:13:40 UTC
Hi Howard:
Our test finished last night and the news is GOOD.
We did not see MDB_PAGE_FULL error using patch 7505.  At the same time, the other test ended with MDB_PAGE_FULL running older drop.

Thank you very much for the fix.

--Sung

Comment 6 Quanah Gibson-Mount 2013-02-01 00:48:10 UTC
changed notes
changed state Test to Release
Comment 7 Quanah Gibson-Mount 2013-03-05 02:26:17 UTC
changed notes
changed state Release to Closed
Comment 8 OpenLDAP project 2014-08-01 21:04:46 UTC
fixed in mdb.master
fixed in master
fixed in RE24