diff options
Diffstat (limited to 'src/third_party/wiredtiger/src/include/serial.i')
-rw-r--r-- | src/third_party/wiredtiger/src/include/serial.i | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/third_party/wiredtiger/src/include/serial.i b/src/third_party/wiredtiger/src/include/serial.i index c5758ee605a..d471ebb399c 100644 --- a/src/third_party/wiredtiger/src/include/serial.i +++ b/src/third_party/wiredtiger/src/include/serial.i @@ -263,6 +263,7 @@ __wt_update_serial(WT_SESSION_IMPL *session, WT_PAGE *page, { WT_DECL_RET; WT_UPDATE *obsolete, *upd = *updp; + wt_timestamp_t *obsolete_timestamp; uint64_t txn; /* Clear references to memory we now own and must free on error. */ @@ -309,11 +310,14 @@ __wt_update_serial(WT_SESSION_IMPL *session, WT_PAGE *page, * is used as an indicator of there being further updates on this page. */ if ((txn = page->modify->obsolete_check_txn) != WT_TXN_NONE) { - if (!__wt_txn_visible_all(session, txn, NULL)) { + obsolete_timestamp = + WT_TIMESTAMP_NULL(&page->modify->obsolete_check_timestamp); + if (!__wt_txn_visible_all(session, txn, obsolete_timestamp)) { /* Try to move the oldest ID forward and re-check. */ WT_RET(__wt_txn_update_oldest(session, 0)); - if (!__wt_txn_visible_all(session, txn, NULL)) + if (!__wt_txn_visible_all( + session, txn, obsolete_timestamp)) return (0); } |