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

Fix a race between named snapshots and checkpoints

    • Type: Icon: Bug Bug
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • WT2.9.0, 3.2.11, 3.4.0-rc1
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None

      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.

            Assignee:
            michael.cahill@mongodb.com Michael Cahill (Inactive)
            Reporter:
            michael.cahill@mongodb.com Michael Cahill (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: