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

Make change stream jstests compatible with transactions

    • Type: Icon: Improvement Improvement
    • Resolution: Unresolved
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Labels:
    • Query Execution
    • QE 2022-10-03

      Some change stream test cases are labelled as change_stream_does_not_expect_txns. One explanation I found about this label is "These tests make assumptions about change stream results that are no longer true once operations get bundled into [multi-document] transactions." So I take it the label excludes these tests from suites that involve multi-document transactions. So far so good.

      However we've recently made a change (SERVER-63047) that replicates multi-doc writes belonging to a single WriteUnitOfWork transactionally: these operations now generate an applyOps oplog entry. This has been a source of integration issues with tests using the change_stream_does_not_expect_txns label, likely due to the fact that these tests don't expect transaction (applyOps) oplog entries because multi-document transactions are excluded from these tests, which doesn't necessarily holds true any longer.

      As this new mode of operation introduced in SERVER-63047 is planned to become to become the preferred - if not the only - way to write to multiple documents in a WriteUnitOfWork (see SERVER-64506 and its related project), we should consider making these change stream tests support transactions, to ease integration moving forward.

            Assignee:
            backlog-query-execution [DO NOT USE] Backlog - Query Execution
            Reporter:
            josef.ahmad@mongodb.com Josef Ahmad
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated: