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

Read in last_ckpt_base_write_gen at start of recovery

    • 8
    • Storage - Ra 2022-04-04, Storage - Ra 2022-04-18
    • v5.0, v4.4

      verify-datafile-from-little-endian failed on ~ Big-endian (s390x/zSeries)

      Host: ubuntu1804-z-1.dallasisv.build.10gen.cc
      Project: WiredTiger (develop)
      Commit: diff: WT-8543 Rollback-to-stable doesn't fail if there are active prepared transactions (#7361)

      Rollback-to-stable should detect a prepared transaction as an active transaction and fail. | 29 Dec 21 22:36 UTC
      Evergreen Subscription: ; Evergreen Event:

      Task Logs (verify-datafile-from-little-endian)

      Details of problem

      The assertion that fired is:

      [2021/12/30 21:42:07.767] [1640900527:767641][6693:0x3ffa4f78b30], wt, file:wt.wt, txn rollback_to_stable: [WT_VERB_DEFAULT][ERROR]: __rollback_ondisk_fixup_key, 560: hs_stop_durable_ts == WT_TS_NONE || hs_stop_durable_ts < newer_hs_durable_ts || unpack->tw.prepare

      This assertion is checking to ensure that one of:

      • The stop timestamp is WT_TS_NONE (the stop is globally visible).
      • The stop timestamp is older than the next timestamp in the update chain.
      • The update is associated with a prepared transaction.

      It's surprising that the failure happens persistently when checking for cross-endian compatibility and not other places. We should ensure that the code extracting timestamps from disk is doing the right thing when encoding/decoding in terms of endianness.

            andrew.morton@mongodb.com Andrew Morton
            xgen-evg-user Xgen-Evergreen-User
            0 Vote for this issue
            9 Start watching this issue