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

    • Type: Icon: Task Task
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 4.1.13
    • Affects Version/s: None
    • Component/s: Replication
    • None
    • Fully Compatible
    • Repl 2019-05-20, Repl 2019-06-03
    • 50

      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

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

              Created:
              Updated:
              Resolved: