-
Type: Improvement
-
Resolution: Won't Fix
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Replication, Testing Infrastructure
-
None
-
Replication
The reconfig helpers throughout the testing infrastructure retry on various transient errors. Some are due to automatic reconfigs that bump the config version and happen asynchronously, others are due to unnecessary connections being closed due to SERVER-48178. The retries were first added in SERVER-32028, SERVER-40060, SERVER-32638, SERVER-31080, SERVER-27839, and SERVER-27551, but extended significantly in SERVER-46541.
In general our retries are not consistent between python fixture initiate, python fixture reconfig, javascript fixtures, and javascript helpers. It's not clear why these differences exist, or if it's just because of where we've historically seen BFs.
Following closing SERVER-48178 we may be able to remove the NodeNotFound retries (see this comment for details).
We also can consider waiting for 'newlyAdded' removals before issuing reconfigs in more places, rather than just retrying on failures. This might not be straightforward though, since waiting for 'newlyAdded' removals may not always be possible in some testing configurations. This will allow us to not retry on ConfigurationInProgress, ConfigurationNotCommittedYet, and possibly NewReplicaSetConfigurationIncompatible errors.
- is related to
-
SERVER-27839 Allow for step downs during reconfig in ReplSetTest initiate
- Closed
-
SERVER-31080 replSetReconfig may fail with NewReplicaSetConfigurationIncompatible
- Closed
-
SERVER-32028 Make reconfig() in rslib.js resilient to NodeNotFound error
- Closed
-
SERVER-48178 Finding self in reconfig may be interrupted by closing connections due to rollback
- Closed
-
SERVER-46541 Turn Initial Sync Semantics Automatic Reconfigs on by default
- Closed
-
SERVER-27551 QuorumChecker should retry requests that fail
- Closed
-
SERVER-32638 Permit dblock acquisition waiting to be interruptible by killOp
- Closed
-
SERVER-40060 Retry replSetInitiate in ReplSetTest fixture
- Closed