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

Providing readConcern on second transaction statement can corrupt transaction

    • Type: Icon: Bug Bug
    • Resolution: Duplicate
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: 4.0.3, 4.1.3
    • Component/s: Replication
    • Labels:
    • ALL
    • Repl 2018-10-22, Repl 2018-11-05, Repl 2018-11-19

      We do not allow read concern on transaction statements after the first one. However, we do not check for this until unstashTransactionResources(), which occurs after we wait for read concern. This is problematic, since providing a read concern a subsequent statement does not abort the transaction, but waiting for read concern has side effects, such as setting the read timestamp of the transaction, which is used for the writeConcern wait on commitTransaction. This means you could end up with a corrupted transaction.

      This is not a major issue, since drivers and mongos will not send readConcern on subsequent transaction statements.

            siyuan.zhou@mongodb.com Siyuan Zhou
            tess.avitabile@mongodb.com Tess Avitabile (Inactive)
            0 Vote for this issue
            5 Start watching this issue