If things go wrong based on merges with concurrentmergescheduler in tests, its always more difficult to reproduce.
But we make it worse, CMS can base its behavior on:
- number of cpus.
- whether drives are SSDs.
We should just allow a (undocumented, for testing) sysprop backdoor to override both of these. This way, it can be set to values completely based on the random seed in LuceneTestCase init, and its not a reproducibility trap.
Its true we try to set explicit values for LuceneTestCase.newIndexWriterConfig() and so forth. But not all tests use randomized IW configs.