diff options
Diffstat (limited to 'src/third_party/wiredtiger/src/btree/bt_split.c')
-rw-r--r-- | src/third_party/wiredtiger/src/btree/bt_split.c | 9 |
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 baa3a36456d..4de8e448350 100644 --- a/src/third_party/wiredtiger/src/btree/bt_split.c +++ b/src/third_party/wiredtiger/src/btree/bt_split.c @@ -2129,8 +2129,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); @@ -2139,6 +2139,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); |