summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/src/txn/txn_rollback_to_stable.c
diff options
context:
space:
mode:
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.c17
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;