[SERVER-57990] Make ReshardingDonorServiceTest and ReshardingRecipientServiceTest stepdown test cases more realistic Created: 22/Jun/21 Updated: 12/Dec/23 |
|
| Status: | Backlog |
| Project: | Core Server |
| Component/s: | Sharding |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Haley Connelly | Assignee: | Backlog - Cluster Scalability |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | PM-234, cs-subteam1, sharding-nyc-subteam1 | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Assigned Teams: |
Cluster Scalability
|
| Participants: |
| Description |
|
Currently, the resharding_donor_service_test.cpp and resharding_recipient_service_test.cpp have stepdown tests that rely on mocking the coordinator's state changes to make progress. Issue: The loop iterating over which states to pause and then stepdown upon mocks incorrect behavior - it can mock a coordinator's transition to kBlockingWrites before the donor itself is in kDonatingOplogEntries. Example: . at the start of this iteration, ReshardingDonorDocument.state = kDonatingInitialData on disk . the test mocks the coordinator's transition into kApplying . the test waits until the OpObserverForTest::onUpdate witnesses attempt to transition to kDonatingOplogEntries . (next iteration) state = DonorStateEnum::kBlockingWrites, but ReshardingDonorDocument.state = kDonatingInitialData still Note: |