Audit uses of TransactionParticipant::SideTransactionBlock

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Won't Fix
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: Replication
    • v4.2
    • Repl 2019-06-03, Repl 2019-06-17, Repl 2019-07-01
    • None
    • 3
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      We use SideTransactionBlock to do things outside a transaction, while in a multi-document transaction. E.g., when OpObserverImpl writes the prepare oplog entry or (in SERVER-36494) when TransactionParticipant writes to another collection in the "local" DB.

      It seems error-prone that a side transaction block only partly masks the state of the outer transaction. For example, state methods like TransactionParticipant::inMultiDocumentTransaction() reflect the outer transaction.

      This can cause mistakes when recursing into the TransactionParticipant while doing an operation in a side transaction via

      TransactionParticipant method -> OpObserverImpl method -> TransactionParticipant::addTransactionOperation
      

      Audit uses of SideTransactionBlock and consider extending the SideTransactionBlock to more thoroughly mask evidence of the TransactionParticipant's outer transaction.

              Assignee:
              Judah Schvimer
              Reporter:
              A. Jesse Jiryu Davis
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Created:
                Updated:
                Resolved: