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]
