From 83e6d8e49347a1ab6ee5519fdb155abb9f563b87 Mon Sep 17 00:00:00 2001
From: Howard Chu <hyc@symas.com>
Date: Sat, 21 Jan 2012 08:18:37 -0800
Subject: [PATCH] ITS#7121 fix page splits when newindx == 0

---
 libraries/libmdb/mdb.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/libraries/libmdb/mdb.c b/libraries/libmdb/mdb.c
index cdd46c98d7..9480a4339e 100644
--- a/libraries/libmdb/mdb.c
+++ b/libraries/libmdb/mdb.c
@@ -5585,6 +5585,8 @@ newsep:
 			ins_new = 1;
 
 			/* Update page and index for the new key. */
+			if (!newindx)
+				mc->mc_pg[mc->mc_top] = copy;
 			mc->mc_ki[mc->mc_top] = j;
 		} else if (i == nkeys) {
 			break;
@@ -5620,7 +5622,7 @@ newsep:
 		mc->mc_txn->mt_env->me_psize - copy->mp_upper);
 
 	/* reset back to original page */
-	if (newindx < split_indx) {
+	if (!newindx || (newindx < split_indx)) {
 		mc->mc_pg[mc->mc_top] = mp;
 		if (nflags & MDB_RESERVE) {
 			node = NODEPTR(mp, mc->mc_ki[mc->mc_top]);
-- 
GitLab