Dale Richardson created YUNIKORN-3383:
-----------------------------------------

             Summary: Gang / placeholder chaos scenarios + full state-diff 
oracle
                 Key: YUNIKORN-3383
                 URL: https://issues.apache.org/jira/browse/YUNIKORN-3383
             Project: Apache YuniKorn
          Issue Type: Test
          Components: core - scheduler, shim - kubernetes
            Reporter: Dale Richardson
            Assignee: Dale Richardson


Extends the fault-injection chaos harness (YUNIKORN-3377) with gang-scheduling
scenarios and a full shim<->core state-diff oracle.

h3. What it adds

* A create/delete loopback in the mock kube client: placeholders are pods the 
shim
  itself creates (KubeClient.Create) and deletes (KubeClient.Delete). Created 
pods
  are looped back as informer adds; deletes are delivered as informer deletes. 
This
  makes the Delete fault axis reachable for the first time (it was provably
  unreachable before -- zero Delete calls).
* Gang scenarios: originator pod carrying a task-groups annotation plus member
  pods, hard and soft gangStyle, short placeholder timeout. Fault axes: bind
  failure on placeholders and real pods, delete failure, node flap, timeout 
expiry.
* Oracle O6 -- a full state diff run after every scenario settles, reported as
  O6a placement (core allocations <-> shim cache assignments, both directions),
  O6b per-node usage (core node allocated == sum of shim NodeInfo pods), O6c 
queue
  usage (core leaf queue allocated == sum of its apps' allocated + placeholder),
  O6d node-set equality. This surfaces the queue-accounting half of divergences
  that the per-pod oracles cannot see.
* Gang oracles G1 hard-gang atomicity, G2 no orphaned placeholders, G3 booked
  resources never exceed the gang ask, G4 timeout semantics (soft falls back to
  normal scheduling, hard fails the app).

h3. Results

Control (no faults) is fully green in both styles: real pods and placeholders go
through the whole create -> bind -> replace -> delete cycle, every oracle holds 
--
proving the loopback and the gang path are sound. The fault scenarios are
red-by-design and exposed the gang-level expression of YUNIKORN-3355 (a
bind-failed placeholder re-adopted as an existing allocation) and the 
release-path
delete-no-retry that is filed as YUNIKORN-3382. Runtime under 2 minutes.

h3. Note

Red-by-design: this PR stays a draft until the bugs it exposes are fixed, per 
the
YUNIKORN-3373 / YUNIKORN-3377 precedent. The O6 oracle correctly counts
placeholder resources separately (allocatedPlaceholder), verified against
application.go.



--
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