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

Create concurrency test that accesses a collection in a transaction after catalog changes

    XMLWordPrintableJSON

Details

    • Icon: Task Task
    • Resolution: Fixed
    • Icon: Major - P3 Major - P3
    • 4.1.13
    • None
    • Replication
    • None
    • Fully Compatible
    • Repl 2019-05-20, Repl 2019-06-03
    • 50

    Description

      Transactions with local readConcern perform untimestamped reads and do not check the min visible snapshot for collections, so they can access collections whose catalog information does not match the state of the collection in the transaction's snapshot. We will write a concurrency test to exercise this behavior and ensure it cannot cause crashes.

      Transaction thread: This thread must perform transactions using local readConcern. It starts the transaction with an operation on a collection startcoll. Then it performs operations on a collection ddlcoll, which may have had catalog changes since the transaction's snapshot was opened. These operations must include all operations that are supported in transactions (except killCursors, which does not touch data) and must make use of indexes:

      • find (collection scan)
      • find (index scan on _id)
      • find (index scan on secondary index)
      • aggregate
      • delete
      • distinct
      • findAndModify
      • geoSearch
      • getMore
      • insert
      • update

      DDL thread: This thread must perform the following operations on ddlcoll:

      • Create
      • Drop
      • Rename
      • Create secondary index

      Attachments

        Activity

          People

            tess.avitabile@mongodb.com Tess Avitabile (Inactive)
            tess.avitabile@mongodb.com Tess Avitabile (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: