diff options
Diffstat (limited to 'src/third_party/wiredtiger/src/txn/txn_rollback_to_stable.c')
-rw-r--r-- | src/third_party/wiredtiger/src/txn/txn_rollback_to_stable.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/third_party/wiredtiger/src/txn/txn_rollback_to_stable.c b/src/third_party/wiredtiger/src/txn/txn_rollback_to_stable.c index c5e73637d30..817fdc56f9b 100644 --- a/src/third_party/wiredtiger/src/txn/txn_rollback_to_stable.c +++ b/src/third_party/wiredtiger/src/txn/txn_rollback_to_stable.c @@ -120,13 +120,12 @@ __rollback_abort_update(WT_SESSION_IMPL *session, WT_ITEM *key, WT_UPDATE *first } /* - * Clear the history store flag for the stable update to indicate that this update should not be - * written into the history store later, when all the aborted updates are removed from the - * history store. The next time when this update is moved into the history store, it will have a - * different stop time point. + * Clear the history store flags for the stable update to indicate that this update should be + * written to the history store later. The next time when this update is moved into the history + * store, it will have a different stop time point. */ if (stable_upd != NULL) { - if (F_ISSET(stable_upd, WT_UPDATE_HS)) { + if (F_ISSET(stable_upd, WT_UPDATE_HS | WT_UPDATE_TO_DELETE_FROM_HS)) { /* Find the update following a stable tombstone. */ if (stable_upd->type == WT_UPDATE_TOMBSTONE) { tombstone = stable_upd; @@ -135,7 +134,7 @@ __rollback_abort_update(WT_SESSION_IMPL *session, WT_ITEM *key, WT_UPDATE *first if (stable_upd->txnid != WT_TXN_ABORTED) { WT_ASSERT(session, stable_upd->type != WT_UPDATE_TOMBSTONE && - F_ISSET(stable_upd, WT_UPDATE_HS)); + F_ISSET(stable_upd, WT_UPDATE_HS | WT_UPDATE_TO_DELETE_FROM_HS)); break; } } @@ -151,13 +150,13 @@ __rollback_abort_update(WT_SESSION_IMPL *session, WT_ITEM *key, WT_UPDATE *first session, key, stable_upd == NULL ? tombstone->start_ts : stable_upd->start_ts)); /* - * Clear the history store flag for the first stable update. Otherwise, it will not be + * Clear the history store flags for the first stable update. Otherwise, it will not be * moved to history store again. */ if (stable_upd != NULL) - F_CLR(stable_upd, WT_UPDATE_HS); + F_CLR(stable_upd, WT_UPDATE_HS | WT_UPDATE_TO_DELETE_FROM_HS); if (tombstone != NULL) - F_CLR(tombstone, WT_UPDATE_HS); + F_CLR(tombstone, WT_UPDATE_HS | WT_UPDATE_TO_DELETE_FROM_HS); } if (stable_update_found != NULL) *stable_update_found = true; |