[SERVER-38865] Create rollback test fixture that is compatible with prepared transactions Created: 06/Jan/19  Updated: 29/Oct/23  Resolved: 24/Jan/19

Status: Closed
Project: Core Server
Component/s: Replication
Affects Version/s: None
Fix Version/s: 4.1.8

Type: Improvement Priority: Major - P3
Reporter: Pavithra Vetriselvan Assignee: Pavithra Vetriselvan
Resolution: Fixed Votes: 0
Labels: prepare_testing
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by SERVER-35872 Reconstruct prepared transactions on ... Closed
Problem/Incident
causes SERVER-39910 Race in rollback_drop_database.js Closed
Related
related to SERVER-35176 Create a rollback fuzzer suite with t... Closed
Backwards Compatibility: Fully Compatible
Sprint: Repl 2019-01-14, Repl 2019-01-28
Participants:
Linked BF Score: 8

 Description   

Currently, we use rollback_test.js (3 nodes, PSA) and rollback_test_deluxe.js (5 nodes, PSSAA, for double rollbacks) for testing our rollback algorithm. Unfortunately, neither of these test fixtures will work with prepared transactions because we cannot run prepared transactions on replica sets with arbiters.

Since we will likely want more test coverage of rollback with prepared transactions, we should make a new test fixture that uses a PSS architecture. We can achieve something similar to the PSA architecture by setting one of the secondaries to priority: 0 and periodically stopping/restarting replication on that node.



 Comments   
Comment by Githook User [ 24/Jan/19 ]

Author:

{'username': 'pvselvan', 'email': 'pvselvan@umich.edu', 'name': 'Pavi Vetriselvan'}

Message: SERVER-38865 change rollback_test fixture to use secondary instead of arbiter
Branch: master
https://github.com/mongodb/mongo/commit/3c5bb991e11d25fb767ee5c6fb249c3bcafa32a3

Comment by Judah Schvimer [ 07/Jan/19 ]

I agree with tess.avitabile that it should replace it. In addition to it being unsupported, I think having fewer test fixtures is better.

Comment by Pavithra Vetriselvan [ 07/Jan/19 ]

judah.schvimer I don't think it would replace rollback_test.js. Maybe we could extend rollback_test.js to accommodate prepared transactions? But to answer your question, I intended for this ticket to make prepare rollback testing easier.

Comment by Tess Avitabile (Inactive) [ 07/Jan/19 ]

I would suggest this replace rollback_test.js, since PSA and enableMajorityReadConcern:true is not a supported configuration.

Comment by Judah Schvimer [ 07/Jan/19 ]

pavithra.vetriselvan, is this fixture expected to replace rollback_test.js or just be used in the fuzzer and prepare rollback tests?

Generated at Thu Feb 08 04:50:16 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.