-
Type:
Bug
-
Status: Resolved
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 1.5.1, 1.6.1, 1.7.0
-
Fix Version/s: None
-
Component/s: scheduler api
-
Labels:
A typical use pattern for a framework scheduler is to remove its reservations before tearing itself down. However, it is racy: UNRESERVE is a multi-stage action which aborts if the framework is removed in-between.
Solution 1
Let schedulers use operation feedback and expect them to wait for an ack for UNRESERVE before they send TEARDOWN. Kind of science fiction with a timeline of O(months) and still possibilities for the race if a scheduler does not comply.
Solution 2
Serialize calls for schedulers. For example, we can chain handlers here onto per-Master::Framework process::Sequence. For that however, handlers must provide futures indicating when the processing of the call is finished, note that most handlers here return void.