tigerquoll opened a new pull request, #1071:
URL: https://github.com/apache/yunikorn-k8shim/pull/1071

   ### What this is
   
   A metamorphic property fuzzer for the shim's informer event handlers. The 
informer contract permits legal reorderings — create collapsed into an update, 
stale delete objects, resync duplicates, arbitrary cross-object interleaving. 
[YUNIKORN-3317](https://issues.apache.org/jira/browse/YUNIKORN-3317) was a bug 
in exactly that space and no tool covered the class.
   
   JIRA: [YUNIKORN-3385](https://issues.apache.org/jira/browse/YUNIKORN-3385)
   
   > **Draft — red on master by design.** This test currently fails on master 
because it surfaces 
[YUNIKORN-3381](https://issues.apache.org/jira/browse/YUNIKORN-3381) (see 
below). It follows the 
[YUNIKORN-3373](https://issues.apache.org/jira/browse/YUNIKORN-3373) precedent 
of keeping the detector as a draft until the defect it exposes is fixed.
   
   ### 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 — then deliver 
that single history in a number of different but equally legal informer 
orderings, each to a fresh `Context`, and assert all of them converge to the 
identical end-state (cached pods with their node/phase, foreign-pod set, node 
set, live foreign allocations). Two generator constraints keep the oracle sound 
and are 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).
   
   Histories come from a fixed seed list; a failure is replayable, reporting 
the seed, the generated history, the reference ordering's full event trace and 
every diverging ordering's trace, plus the differing state.
   
   ### 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.
   
   On master it also found a live convergence divergence, filed as 
[YUNIKORN-3381](https://issues.apache.org/jira/browse/YUNIKORN-3381): a foreign 
pod that terminates while orphaned is later re-adopted as a phantom allocation. 
That is why this PR is red on master and stays a draft until 3381 is fixed.
   
   Test-only; `make lint` and `make license-check` clean.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to