The index_builds_ignore_prepare_conflicts.js test was disabled by SERVER-43301.
To make this test pass, disable the fix put in by SERVER-38588 to block prepared transactions on index builds on secondaries.
When two-phase index builds are in use, it is both unnecessary and unsafe to block a prepared transactions on index builds on secondaries. Due to locking, we can guarantee that a transaction prepared on a primary during an index build will always commit before that index build completes. Because two-phase index builds replicate start and commit oplog entries, it will never be possible to replicate a prepared transaction, commit an index build, then commit the transaction, the bug SERVER-38588 addressed.
This blocking behavior can also introduce a deadlock with two-phase index builds on a secondary if a prepared transaction blocks on an index build, but the index build can't re-acquire its S or X lock because of the transaction.
- is depended on by
-
SERVER-43692 enable two phase index builds by default
- Closed
- is related to
-
SERVER-38588 Hybrid index builds do not work when applied concurrently with prepared transactions on secondaries
- Closed
-
SERVER-40041 block prepared transactions behind index builds during initial sync
- Closed
-
SERVER-43301 add no_passthrough to two phase index builds evergreen builder
- Closed