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

Use same transaction update when on-disk value is an aborted prepared update

    • Type: Icon: Build Failure Build Failure
    • Resolution: Fixed
    • Priority: Icon: Blocker - P1 Blocker - P1
    • WT10.0.1, 4.4.7, 5.0.0-rc5, 5.1.0-rc0
    • Affects Version/s: None
    • Component/s: None
    • None
    • 5
    • Storage - Ra 2021-06-28
    • v5.0, v4.4

      We have seen multiple MongoDB test failures with following assert from __wt_rec_update_select():

      WT_ASSERT(session, vpack != NULL && vpack->type != WT_CELL_DEL && !vpack->tw.prepare); 

      Our initial investigations revealed that following scenario can reproduce this assert:

      • Commit an update and remove it in single transaction
      • Add a prepared update to the same key
      • Evict the page which contains that particular key
      • Rollback the prepared transaction
      • Perform a checkpoint or evict the page

      Debugging from GDB suggests that the function __wt_rec_update_select() is unable to properly restore the tombstone and the regular update (from a single transaction) from history store.

            Assignee:
            haseeb.bokhari@mongodb.com Haseeb Bokhari (Inactive)
            Reporter:
            haseeb.bokhari@mongodb.com Haseeb Bokhari (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated:
              Resolved: