Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-33432

Implicit transaction abort

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 3.7.4
    • Affects Version/s: None
    • Component/s: Replication
    • Fully Compatible
    • Repl 2018-03-26, Repl 2018-04-09
    • 45

      This ticket covers the following implicit abort cases.

      • When a transaction is open and the server receives an operation with a higher transactionId on the same session, the existing transaction will be aborted and a new transaction will be started.
      • Any time the storage engine tells us to.
      • If a transaction encounters a WriteConflictException at any point.
      • When the transaction tries to access its storage engine layer transaction and discovers that the storage transaction has been aborted. This would happen whenever the storage engine decides to kill an ongoing transaction for any reason (for example due to WT cache pressure).

      It doesn't cover the following cases.

      • When they see an operation on the same transaction with a ‘stmtId’ that has already been seen on that transaction.
      • When the primary driving the transaction steps down.
      • When the session expires.
      • When the transaction has been alive for more than 1 minute.
      • If a transaction fails to acquire a database lock at any point.
      • When a transaction tries to commit but discovers that the applyOps commit entry it would generate is too large (greater than 16 MB).

            Assignee:
            siyuan.zhou@mongodb.com Siyuan Zhou
            Reporter:
            spencer@mongodb.com Spencer Brody (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              Resolved: