Aborting a prepared transaction must not respect maxTransactionLockMillis

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Fixed
    • Priority: Major - P3
    • 4.1.4
    • Affects Version/s: None
    • Component/s: Replication
    • None
    • Fully Compatible
    • ALL
    • Repl 2018-10-08
    • 61
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None

      When abortActiveTransaction() is called from prepareTransaction(), it should not use maxTransactionLockMillis for its lock acquisitions, since writing the abort oplog entry must always succeed. However, this is only safe if the thread is not holding any locks, since otherwise it could self-deadlock. Thus the order of operations for abortActiveTransaction() should be:

      • Reserve oplog slot.
      • Abort storage transaction and reset locker.
      • Write abort oplog entry.

            Assignee:
            Tess Avitabile (Inactive)
            Reporter:
            Tess Avitabile (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: