[SERVER-53125] Prevent false positives from ReshardingCoordinatorService's allParticipantsGTE() Created: 30/Nov/20  Updated: 29/Oct/23  Resolved: 02/Dec/20

Status: Closed
Project: Core Server
Component/s: Sharding
Affects Version/s: None
Fix Version/s: 4.9.0

Type: Bug Priority: Major - P3
Reporter: Haley Connelly Assignee: Haley Connelly
Resolution: Fixed Votes: 0
Labels: PM-234-M2, PM-234-T-lifecycle
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Backwards Compatibility: Fully Compatible
Operating System: ALL
Sprint: Sharding 2020-12-14
Participants:
Story Points: 1

 Description   

In the ReshardingCoordinatorObserver, allParticipantsInStateGTE expects that if one state is greater than the expected state, all Participants must be. This is not the case.

eg)
. If recipient0 hangs before durably reporting to the coordinator document that it has transitioned to RecipientStateEnum::kApplying
. recipient1 successfully transitions to RecipientStateEnum::kSteadyState
. THEN it is possible for the observer to see participant0 in state 0, and participant1 in state 4. In this case, the method would falsely return true instead of false.

Please also add a test case for this scenario. 



 Comments   
Comment by Githook User [ 02/Dec/20 ]

Author:

{'name': 'Haley Connelly', 'email': 'haley.connelly@mongodb.com', 'username': 'haleyConnelly'}

Message: SERVER-52951 Make ReshardingRecipientService transitions to kApplying, kStrictConsistency, and kDone update coordinator document

SERVER-53125 Prevent false positives from ReshardingCoordinatorService's allParticipantsGTE()
Branch: master
https://github.com/mongodb/mongo/commit/245b01e68b895bcf3296b0235ed6b7fad17a71e6

Generated at Thu Feb 08 05:30:02 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.