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

Fix a race between named snapshots and checkpoints

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: WT2.9.0, 3.2.11, 3.4.0-rc1
    • Labels:
      None

      Description

      We have seen this assertion in testing:

      [js_test:read_committed_after_rollback] 2016-08-18T00:55:35.560+0000 d20015| 2016-08-18T00:55:35.559+0000 E STORAGE  [conn62] WiredTiger (0) [1471481735:559713][16909:0x11300b000], WT_SESSION.rollback_transaction: src/third_party/wiredtiger/src/txn/txn.c, 101: txn_state->snap_min == WT_TXN_NONE || session->txn.isolation == WT_ISO_READ_UNCOMMITTED || !__wt_txn_visible_all(session, txn_state->snap_min)
      [js_test:read_committed_after_rollback] 2016-08-18T00:55:35.560+0000 d20015| 2016-08-18T00:55:35.559+0000 E STORAGE  [conn62] WiredTiger (0) [1471481735:559882][16909:0x11300b000], WT_SESSION.rollback_transaction: aborting WiredTiger library
      

      I believe that this transaction was started on a named snapshot, and the snapshot was dropped before the transaction was rolled back.

      Write a WT test case for this (create a named snapshot, start a transaction on it, do lots of additional transactions to move the oldest ID forward, try to commit / rollback the transaction and reproduce the assertion).

      The fix is to publish the snap_min for named snapshots into txn_global->states.

        Attachments

          Activity

            People

            • Assignee:
              michael.cahill Michael Cahill
              Reporter:
              michael.cahill Michael Cahill
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: