-
Type:
Task
-
Resolution: Unresolved
-
Priority:
Major - P3
-
None
-
Affects Version/s: None
-
Component/s: None
-
DB Integration & Observability
-
200
-
None
-
None
-
None
-
None
-
None
-
None
-
None
Background
After T1-T4, no test waits on the absolute failpoint counter by accident. But nothing stops someone from writing fpb->waitForTimesEntered(1) again in the future.
What to do
Change FailPoint::waitForTimesEntered so that absolute waits can't be written by accident. Evaluate three options and pick one:
- (a) require an explicit AbsoluteEntryCount{n} wrapper type
- (b) make the method private, reachable only through FailPointEnableBlock
- (c) rename it to waitForAbsoluteTimesEntered
Done when
- fpb->waitForTimesEntered(1) no longer compiles. If (c) is chosen, the old name no longer exists.
- The whole tree builds. The intentional uses in fail_point_test.cpp use the new spelling.
- The PR description compares (a), (b), and (c) and explains the choice.
Details
See attached pr5_restrict_absolute_api.md: the trade-offs of each option, which callers block option (b), and how to verify.
- depends on
-
SERVER-135706 FP Safety 4/5: Migrate initialTimesEntered()+N pattern to relative-wait API
-
- Closed
-
- related to
-
SERVER-135699 Absolute waitForTimesEntered(1) barrier is a no-op in StepUpReconfigConcurrentWithForceHeartbeatReconfig reconfig test
-
- Closed
-