Dale Richardson created YUNIKORN-3385:
-----------------------------------------
Summary: 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
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.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]