[ 
https://issues.apache.org/jira/browse/YUNIKORN-3385?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dale Richardson updated YUNIKORN-3385:
--------------------------------------
    Description: 
A metamorphic property fuzzer for the shim's informer event handlers. The 
informer
contract permits legal reorderings (create collapsed into update, stale delete
objects, resync duplicates, arbitrary cross-object interleaving); YUNIKORN-3317 
was
exactly an ordering bug and no tool covered the class.

h3. Design (metamorphic, no reference model)

Generate a logical final truth (a small set of pods and nodes, YuniKorn-managed
and foreign, with per-object version histories), enumerate/sample N legal 
delivery
orderings of the SAME history, drive a fresh Context's handlers
(AddPod/UpdatePod/DeletePod, addNode/updateNode/deleteNode) with each, and 
assert
all orderings converge to the identical cache end-state (cached pods and their
node/phase, foreign-pod set, node set, live foreign allocations). A divergence
reports the seed, both orderings' full event traces, and the first differing 
field.

Two generator constraints keep the oracle sound (documented in the file): pod
assignment/resources are immutable once set, and a node any pod is assigned to 
is
never deleted (a node delete genuinely loses information).

h3. Proof of value

Run against branch-1.8 it rediscovers YUNIKORN-3317 on 4 of 5 seeds -- a foreign
pod whose create was collapsed into an update is never reported to the core, 
while
the same history with a plain create books it. That is a useful 
retro-validation for the test 

On master it also found a live convergence divergence, filed as YUNIKORN-3381
(terminated-while-orphaned foreign pod re-adopted as a phantom allocation).

h3. Note

Red-by-design on master until YUNIKORN-3381 is fixed; draft per the 
YUNIKORN-3373
precedent.

  was:
A metamorphic property fuzzer for the shim's informer event handlers. The 
informer
contract permits legal reorderings (create collapsed into update, stale delete
objects, resync duplicates, arbitrary cross-object interleaving); YUNIKORN-3317 
was
exactly an ordering bug and no tool covered the class.

h3. Design (metamorphic, no reference model)

Generate a logical final truth (a small set of pods and nodes, YuniKorn-managed
and foreign, with per-object version histories), enumerate/sample N legal 
delivery
orderings of the SAME history, drive a fresh Context's handlers
(AddPod/UpdatePod/DeletePod, addNode/updateNode/deleteNode) with each, and 
assert
all orderings converge to the identical cache end-state (cached pods and their
node/phase, foreign-pod set, node set, live foreign allocations). A divergence
reports the seed, both orderings' full event traces, and the first differing 
field.

Two generator constraints keep the oracle sound (documented in the file): pod
assignment/resources are immutable once set, and a node any pod is assigned to 
is
never deleted (a node delete genuinely loses information).

h3. Proof of value

Run against branch-1.8 it rediscovers YUNIKORN-3317 on 4 of 5 seeds -- a foreign
pod whose create was collapsed into an update is never reported to the core, 
while
the same history with a plain create books it. That is the retro-validation the
earlier backport probe could not produce.

On master it also found a live convergence divergence, filed as YUNIKORN-3381
(terminated-while-orphaned foreign pod re-adopted as a phantom allocation).

h3. Note

Red-by-design on master until YUNIKORN-3381 is fixed; draft per the 
YUNIKORN-3373
precedent.


> Informer event-ordering property fuzzer
> ---------------------------------------
>
>                 Key: YUNIKORN-3385
>                 URL: https://issues.apache.org/jira/browse/YUNIKORN-3385
>             Project: Apache YuniKorn
>          Issue Type: Test
>          Components: core - scheduler, shim - kubernetes
>            Reporter: Dale Richardson
>            Assignee: Dale Richardson
>            Priority: Minor
>
> A metamorphic property fuzzer for the shim's informer event handlers. The 
> informer
> contract permits legal reorderings (create collapsed into update, stale delete
> objects, resync duplicates, arbitrary cross-object interleaving); 
> YUNIKORN-3317 was
> exactly an ordering bug and no tool covered the class.
> h3. Design (metamorphic, no reference model)
> Generate a logical final truth (a small set of pods and nodes, 
> YuniKorn-managed
> and foreign, with per-object version histories), enumerate/sample N legal 
> delivery
> orderings of the SAME history, drive a fresh Context's handlers
> (AddPod/UpdatePod/DeletePod, addNode/updateNode/deleteNode) with each, and 
> assert
> all orderings converge to the identical cache end-state (cached pods and their
> node/phase, foreign-pod set, node set, live foreign allocations). A divergence
> reports the seed, both orderings' full event traces, and the first differing 
> field.
> Two generator constraints keep the oracle sound (documented in the file): pod
> assignment/resources are immutable once set, and a node any pod is assigned 
> to is
> never deleted (a node delete genuinely loses information).
> h3. Proof of value
> Run against branch-1.8 it rediscovers YUNIKORN-3317 on 4 of 5 seeds -- a 
> foreign
> pod whose create was collapsed into an update is never reported to the core, 
> while
> the same history with a plain create books it. That is a useful 
> retro-validation for the test 
> On master it also found a live convergence divergence, filed as YUNIKORN-3381
> (terminated-while-orphaned foreign pod re-adopted as a phantom allocation).
> h3. Note
> Red-by-design on master until YUNIKORN-3381 is fixed; draft per the 
> YUNIKORN-3373
> precedent.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to