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

Prepared transaction rollback and API error handling fixes

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major - P3
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: WT3.2.2, 4.2.4, 4.3.4
    • Component/s: None
    • Labels:
      None
    • Story Points:
      3
    • Sprint:
      Storage Engines 2020-01-13, Storage Engines 2020-01-27, Storage Engines 2020-02-10
    • Backport Requested:
      v4.2

      Description

      Summary:

      Fix problems in prepared transaction API to fail attempted operations after a prepare without forcing the transaction to rollback, and panic the system if a prepared transaction cannot be subsequently committed.


       

      The changes in WT-5324 have a problem: the test for WT_SESSION.rollback_transaction as the caller in the __wt_txn_err_chk() function call was wrong, always returning success.

      Using the correct test reveals an underlying problem, we need to allow at least WT_CURSOR.reset and WT_CURSOR.close calls in cases where an error has already occurred within a transaction.

      Additionally, under some conditions, prepared transactions can be rolled back, which violates transactional semantics.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              keith.bostic Keith Bostic
              Reporter:
              keith.bostic Keith Bostic
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: