diff options
author | Keith Bostic <keith@wiredtiger.com> | 2015-01-21 11:43:43 -0500 |
---|---|---|
committer | Keith Bostic <keith@wiredtiger.com> | 2015-01-21 11:45:41 -0500 |
commit | a80cbb671fcac3d31abd3f38cf547641de9a1776 (patch) | |
tree | bc8fd1ee17033950c6c270bfeb0d3d7d864478aa | |
parent | 1d76628056d6a42f10dec8d5baaa35a97a29ccba (diff) | |
download | mongo-a80cbb671fcac3d31abd3f38cf547641de9a1776.tar.gz |
When transferring WT_UPDATE memory from one page to another as part of
doing an insert-split, don't use the WT_UPDATE.size if it's a deleted
item; SERVER-16881.
-rw-r--r-- | src/btree/bt_split.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/btree/bt_split.c b/src/btree/bt_split.c index 395ff447035..94c73106d70 100644 --- a/src/btree/bt_split.c +++ b/src/btree/bt_split.c @@ -1253,8 +1253,9 @@ __wt_split_insert(WT_SESSION_IMPL *session, WT_REF *ref, int *splitp) WT_MEMSIZE_TRANSFER(page_decr, right_incr, sizeof(WT_INSERT) + (size_t)i * sizeof(WT_INSERT *) + WT_INSERT_KEY_SIZE(moved_ins)); for (upd = moved_ins->upd; upd != NULL; upd = upd->next) - WT_MEMSIZE_TRANSFER( - page_decr, right_incr, sizeof(WT_UPDATE) + upd->size); + WT_MEMSIZE_TRANSFER(page_decr, right_incr, + sizeof(WT_UPDATE) + + (WT_UPDATE_DELETED_ISSET(upd) ? 0 : upd->size)); /* * Allocation operations completed, move the last insert list item from |