summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/src/btree/bt_split.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/third_party/wiredtiger/src/btree/bt_split.c')
-rw-r--r--src/third_party/wiredtiger/src/btree/bt_split.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/third_party/wiredtiger/src/btree/bt_split.c b/src/third_party/wiredtiger/src/btree/bt_split.c
index a48210bd5bc..d9ce6c6a3ac 100644
--- a/src/third_party/wiredtiger/src/btree/bt_split.c
+++ b/src/third_party/wiredtiger/src/btree/bt_split.c
@@ -2127,8 +2127,8 @@ __split_multi(WT_SESSION_IMPL *session, WT_REF *ref, bool closing)
__split_multi_inmem_final(session, page, &mod->mod_multi[i]);
/*
- * Pages with unresolved changes are not marked clean in reconciliation, do it now, then discard
- * the page.
+ * Page with changes not written in this reconciliation is not marked as clean, do it now, then
+ * discard the page.
*/
__wt_page_modify_clear(session, page);
__wt_page_out(session, &page);
@@ -2137,6 +2137,11 @@ __split_multi(WT_SESSION_IMPL *session, WT_REF *ref, bool closing)
err:
for (i = 0; i < new_entries; ++i)
__split_multi_inmem_fail(session, page, &mod->mod_multi[i], ref_new[i]);
+ /*
+ * Mark the page dirty to ensure it is reconciled again as we free the split disk images if
+ * we fail to instantiate any of them into memory.
+ */
+ __wt_page_modify_set(session, page);
}
__wt_free(session, ref_new);