mdbx: backport - ITS#8310 fix mdb_rebalance cursor fixup.

When collapsing root, must adjust entire cursor stack

Change-Id: If62c42f556311e785aa414954a3d7fddc077cf62
This commit is contained in:
Howard Chu 2015-11-13 09:25:55 +00:00 committed by Leo Yuriev
parent 01f5b5e209
commit 380c61bcf7
2 changed files with 3 additions and 2 deletions

View File

@ -8,6 +8,7 @@ LMDB 0.9.17 Release Engineering
Fix ITS#8258 rebalance/split assert
Fix ITS#8263 cursor_put cursor tracking
Fix ITS#8264 cursor_del cursor tracking
Fix ITS#8310 cursor_del cursor tracking
Fix ITS#8299 mdb_del cursor tracking
Fix ITS#8300 mdb_del cursor tracking
Fix ITS#8304 mdb_del cursor tracking

4
mdb.c
View File

@ -8103,9 +8103,9 @@ mdb_rebalance(MDB_cursor *mc)
m3 = &m2->mc_xcursor->mx_cursor;
else
m3 = m2;
if (m3 == mc || m3->mc_snum < mc->mc_snum) continue;
if (m3 == mc) continue;
if (m3->mc_pg[0] == mp) {
for (i=0; i<m3->mc_snum; i++) {
for (i=0; i<mc->mc_db->md_depth; i++) {
m3->mc_pg[i] = m3->mc_pg[i+1];
m3->mc_ki[i] = m3->mc_ki[i+1];
}