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

      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: