Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-5943

Consider WT_TS_NONE timestamped update also a valid update for rollback to stable

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • WT10.0.0, 4.4.0-rc0, 4.7.0
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None
    • 3
    • Storage Engines 2020-04-06

      Treat the updates with WT_TS_NONE timestamp and not aborted transaction id are to be treated as a valid stable update. In the rollback fuzzer unclean shutdown test, the updates inserted with a WT_TS_NONE timestamp.

      The test failure is can found here:
      https://evergreen.mongodb.com/task/mongodb_mongo_v4.4_enterprise_rhel_62_64_bit_rollback_fuzzer_unclean_shutdowns_0_enterprise_rhel_62_64_bit_60369839c72b029a884f3f24221287220066700d_20_03_30_03_47_46/0

      With the following fix, the test passes:

      diff --git a/src/txn/txn_rollback_to_stable.c b/src/txn/txn_rollback_to_stable.c
      index cdf5f93a9..c65a42175 100644
      --- a/src/txn/txn_rollback_to_stable.c
      +++ b/src/txn/txn_rollback_to_stable.c
      @@ -30,6 +30,12 @@ __rollback_abort_newer_update(WT_SESSION_IMPL *session, WT_UPDATE *first_upd,
               if (upd->txnid == WT_TXN_ABORTED || upd->start_ts == WT_TS_NONE) {
                   if (upd == first_upd)
                       first_upd = upd->next;
      +
      +            /*
      +             * Consider WT_TS_NONE timestamped update as a valid stable update if it is not aborted.
      +             */
      +            if (upd->txnid != WT_TXN_ABORTED)
      +                *stable_update_found = true;
               } else if (rollback_timestamp < upd->durable_ts) {
                   /*
                    * If any updates are aborted, all newer updates better be aborted as well.
      

            Assignee:
            haribabu.kommi@mongodb.com Haribabu Kommi
            Reporter:
            haribabu.kommi@mongodb.com Haribabu Kommi
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: