[SERVER-44409] Add FSM test for creating indexes/collections/databases in txns Created: 04/Nov/19  Updated: 29/Oct/23  Resolved: 12/Mar/20

Status: Closed
Project: Core Server
Component/s: Catalog, Concurrency
Affects Version/s: None
Fix Version/s: 4.4.0-rc0, 4.7.0

Type: New Feature Priority: Major - P3
Reporter: Geert Bosch Assignee: Maria van Keulen
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Backports
Related
related to SERVER-46651 Concurrent update with upsert:true an... Backlog
is related to SERVER-46796 Specific errors during prepare should... Closed
Backwards Compatibility: Fully Compatible
Backport Requested:
v4.4
Sprint: Execution Team 2019-12-30, Execution Team 2020-03-09, Execution Team 2020-03-23
Participants:

 Description   

This test should do a mix of operations both inside and outside of transactions that stress concurrency of DDL operations both within and outside of transactions.

Operations to test:

  • update with {{upsert : true }}
  • insert
  • createIndexes
  • create, both with and without extra indexes beyond _id

Conditions to test:

  • database, collection and indexes exist
  • database exists, but collection and indexes don't
  • database doesn't exist
  • test multiple operations on the same collection inside a multi-document transaction
  • test multiple operations on multiple collections inside a multi-doc transaction
  • test operations outside a multi-doc transactions
  • concurrent drop command (outside of transaction)


 Comments   
Comment by Githook User [ 12/Mar/20 ]

Author:

{'name': 'Maria van Keulen', 'username': 'mvankeulen94', 'email': 'maria@mongodb.com'}

Message: SERVER-44409 Add FSM and nice-to-have collection and index test cases

(cherry picked from commit 90c3f10389519068eb685db72b7ff13f93c71dc6)
Branch: v4.4
https://github.com/mongodb/mongo/commit/11fad729f6ad3d1b546d687bf4541f428de0d0bc

Comment by Githook User [ 12/Mar/20 ]

Author:

{'name': 'Maria van Keulen', 'username': 'mvankeulen94', 'email': 'maria@mongodb.com'}

Message: SERVER-44409 Add FSM and nice-to-have collection and index test cases
Branch: master
https://github.com/mongodb/mongo/commit/90c3f10389519068eb685db72b7ff13f93c71dc6

Comment by Maria van Keulen [ 09/Mar/20 ]

Removing renameCollection from the list of cases to test, since our transactions override testing, which this FSM workload relies on, does not permit workloads that run non-blindly-retryable commands.

Comment by Maria van Keulen [ 05/Mar/20 ]

A fair amount of the test conditions in this ticket description are already encompassed in create_collection_parallel.js and create_indexes_parallel.js as well as rollback_fuzzer (I found a number of bugs when doing SERVER-45405).

Comment by Maria van Keulen [ 18/Feb/20 ]

This ticket should also add targeted (non-FSM) test cases for collection creation inside prepared transactions (see SERVER-45945). It should add a targeted test for both a multi-write-shard transaction that ends in an abort decision because at least one participant attempts to create a collection and a multi-shard but single-write-shard transaction that succeeds when it includes collection creation.

Comment by Maria van Keulen [ 07/Jan/20 ]

This test case would likely need to be blacklisted from the concurrency_sharded_multi_stmt_txn_kill_primary, concurrency_sharded_multi_stmt_txn_terminate_primary, and concurrency_sharded_multi_stmt_txn_with_stepdowns suites, since create and createIndexes are not commands that are blindly retryable.

geert.bosch and I discussed that we could add a test that only does idempotent implicit collection creations, such as upserts or createIndexes on the _id index, in order to get testing coverage of collection creation inside transactions in these suites.

Generated at Thu Feb 08 05:05:54 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.