Fold a pending assignment into the value of its assignment key (issue 1094)
A wait for a build is the value of <node>.<module> with state pending and a pending object (id p-<unix nanoseconds>, a string), so every reader that skips a value with a state skips it, and the controller's own lists skip it through Stands. The transitions are compare-and-set on the key's revision (claim, release, settle, repoint, mark); assigning over a wait carries it into the value that stands, applied when it was waiting; a plan pass never overwrites it; one open wait per machine and module, and a key that holds the module refuses a new one. The table is no longer read or written, ForgetEndedPending is gone (no key is removed), and a wait of a machine the store dropped is none. Callers change type only; their conditions are the next issue.
This commit is contained in:
Vendored
+5
@@ -155,3 +155,8 @@
|
||||
./cmd/mesh-controller TestOneReadOfAnAssignmentNamesItsCommitBuildAndRolloutAndOneReadOfTheRolloutListsItsAssignments
|
||||
./cmd/mesh-controller TestASendOfWhatAMachineRunsAlreadyChangesNoLinkOfItsAssignment
|
||||
./internal/inventory TestARowChangedAfterTheFirstPassIsInTheBucketWhenTheKindIsRecordedMoved
|
||||
./internal/inventory TestAPendingAssignmentIsAKeyOfTheAssignmentsBucket
|
||||
./internal/inventory TestARecordedPendingIsSkippedByAssignedAndTheJoins
|
||||
./internal/inventory TestTwoClaimsOfOnePendingMakeOneAndTheOtherSeesFalse
|
||||
./internal/inventory TestAssignOverAPendingKeepsItsRecordAsApplied
|
||||
./internal/inventory TestAPendingIsMarkedOnceAndGoesWithItsMachine
|
||||
|
||||
Reference in New Issue
Block a user