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

Incorrect timestamps printed in RTS logs and contradictory ones

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • WT11.3.0, 8.1.0-rc0
    • Affects Version/s: None
    • Component/s: RTS
    • None
    • Storage Engines
    • 2
    • StorEng - Defined Pipeline
    • v8.0, v7.0, v6.0, v5.0

      Diff needed:

      diff --git a/src/rollback_to_stable/rts_btree_walk.c b/src/rollback_to_stable/rts_btree_walk.c
      index 139aa1dac..7bee3f5d1 100644
      --- a/src/rollback_to_stable/rts_btree_walk.c
      +++ b/src/rollback_to_stable/rts_btree_walk.c
      @@ -32,7 +32,7 @@ __rts_btree_walk_page_skip(
       {
           WT_PAGE_DELETED *page_del;
           wt_timestamp_t rollback_timestamp;
      -    char time_string[WT_TIME_STRING_SIZE];
      +    char time_string[3][WT_TIME_STRING_SIZE];
           bool reconciled;
       
           rollback_timestamp = *(wt_timestamp_t *)context;
      @@ -71,7 +71,7 @@ __rts_btree_walk_page_skip(
                         WT_RTS_VERB_TAG_SKIP_DEL "ref=%p: deleted page walk skipped page_del %s",
                         (void *)ref,
                         __wt_time_point_to_string(page_del->timestamp, page_del->durable_timestamp,
      -                    page_del->txnid, time_string));
      +                    page_del->txnid, time_string[0]));
                   }
                   WT_STAT_CONN_INCR(session, txn_rts_tree_walk_skip_pages);
                   *skipp = true;
      @@ -83,9 +83,9 @@ __rts_btree_walk_page_skip(
                     WT_RTS_VERB_TAG_PAGE_DELETE
                     "deleted page with commit_timestamp=%s, durable_timestamp=%s > "
                     "rollback_timestamp=%s, txnid=%" PRIu64,
      -              __wt_timestamp_to_string(page_del->timestamp, time_string),
      -              __wt_timestamp_to_string(page_del->durable_timestamp, time_string),
      -              __wt_timestamp_to_string(rollback_timestamp, time_string), page_del->txnid);
      +              __wt_timestamp_to_string(page_del->timestamp, time_string[0]),
      +              __wt_timestamp_to_string(page_del->durable_timestamp, time_string[1]),
      +              __wt_timestamp_to_string(rollback_timestamp, time_string[2]), page_del->txnid);
               return (0);
           }
      

      Furthermore, suggesting the following change otherwise we print two messages that are contradictory:

      diff --git a/src/rollback_to_stable/rts_btree_walk.c b/src/rollback_to_stable/rts_btree_walk.c
      index 139aa1dac..7bee3f5d1 100644
      --- a/src/rollback_to_stable/rts_btree_walk.c
      +++ b/src/rollback_to_stable/rts_btree_walk.c
      @@ -104,6 +104,7 @@ __rts_btree_walk_page_skip(
               __wt_verbose_multi(session, WT_VERB_RECOVERY_RTS(session),
                 WT_RTS_VERB_TAG_STABLE_PG_WALK_SKIP "ref=%p: stable page walk skipped", (void *)ref);
               WT_STAT_CONN_INCR(session, txn_rts_tree_walk_skip_pages);
      +        return (0);
           }
       
           reconciled = ref->page && ref->page->modify ? true : false;
      

            Assignee:
            Unassigned Unassigned
            Reporter:
            etienne.petrel@mongodb.com Etienne Petrel
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: