-
Type: Engineering Test
-
Resolution: Unresolved
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
Replication
mongosync has caught a number of server bugs just by being an aggressive load generator in ways our server testing doesn't do. It relaxes a lot of test assertions to be able to run very aggressive load against the server with minimal to no denylisting and then just checks for hangs, crashes, and data inconsistency. I'd love to bring some of this to the server.
Thoughts on the approach:
- run multiple threads of jscore, concurrency, the mutational fuzzer, and maybe some of our other generational fuzzers in parallel
- relax test assertions like mongosync does, other than shutdown consistency checking
- consider turning collection drops into noops (maybe only a random portion of the time)
- consider overriding namespace generation similar to mongosync to get more data collisions.
- run it in sharded clusters with balancing enabled, ensuring that cross-shard transactions and balancing in fact occur
- run stepdowns, terminates, and node killing in the background
- ensure we get good coverage of resharding collections (namespace collisions should pick this up given our resharding concurrency workloads
- run this with the config fuzzer so that we turn various different knobs along the way
- consider periodically flipping the FCV and binary version if possible.
- see if there are any failpoints to flip on and off in the background to pause at interesting points, but only ones that could exacerbate unfortunate timing.
This would then be a good workload to run under Antithesis.
- is related to
-
SERVER-76051 Exercise dynamic concurrency adjustment in the config fuzzer
- Closed
-
SERVER-75262 Add a passthrough test that exercises ticket exhaustion
- Closed
-
SERVER-78028 Add random failures to initial syncs in initial sync concurrency suites
- Open
- related to
-
SERVER-77018 Deadlock between dbStats and 2 index builds
- Closed
-
SERVER-77962 Investigate automated injection of faults/delays into promise completion
- Open
-
SERVER-87790 Combine similar replication passthroughs
- Open