-
Type: Bug
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: Replication
-
None
-
Fully Compatible
-
ALL
-
Repl 2019-08-12
-
7
I think there is a race in the test. The test waits for a node to be in RECOVERING state because of "too stale". However, when a node starts up, it always go through RECOVERING state as part of the start up process. The intention of the test is to ensure that a secondary that has gone "too stale" will transition back to RECOVERING from SECONDARY state. But simply waiting for RECOVERING state is problematic because we can't tell whether RECOVERING is part of start up or is because of "too stale". If the node is still in RECOVERING as part of the startup, the subsequent assert(tooStale(replTest.nodes[2])); would fail. I think "too stale" implies that the node is in RECOVERING. A fix would be to assert.soon on tooStale() and then ensure the node is in RECOVERING state.
- related to
-
SERVER-29803 Add a 'tooStale' field to replSetGetStatus output when a node is in RECOVERING due to being too stale to sync from any available node
- Closed