You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@yunikorn.apache.org by "Yen-Hua Chen (Jira)" <ji...@apache.org> on 2026/09/24 10:15:00 UTC
[jira] [Created] (YUNIKORN-3474) Quota preemption E2E can fail on 5-second pod readiness timeout
Yen-Hua Chen created YUNIKORN-3474:
--------------------------------------
Summary: Quota preemption E2E can fail on 5-second pod readiness timeout
Key: YUNIKORN-3474
URL: https://issues.apache.org/jira/browse/YUNIKORN-3474
Project: Apache YuniKorn
Issue Type: Task
Components: test - e2e
Reporter: Yen-Hua Chen
Assignee: Yen-Hua Chen
Attachments: logs_97238036669.zip
The Quota_Preemption_Delay_Timer_Reset_On_Quota_Re_Reduction E2E test can fail during its initial pod-readiness setup before the quota-preemption behavior under test is exercised.
Observed failure
In a Kubernetes v1.24.17 CI run, the test reached the initial pod-readiness wait at:
STEP: Applying initial config: quota preemption enabled, max=300Mi @ 09/24/26 04:26:27.448
STEP: Creating deployment in namespace dev-6rgv3 @ 09/24/26 04:26:27.453
STEP: Waiting for all 3 deployment pods to be running @ 09/24/26 04:26:27.458
It then failed at:
[FAILED] Unexpected error:
<context.deadlineExceededError>:
context deadline exceeded
occurred
In [It] at:
/home/runner/work/yunikorn-k8shim/yunikorn-k8shim/test/e2e/quota-preemption/quota_preemption_test.go:513
@ 09/24/26 04:26:32.648
The readiness wait therefore started at 04:26:27.458 and failed at 04:26:32.648, approximately 5.19 seconds later.
Source mapping
The failing assertion is immediately after this call:
err = kClient.WaitForNPodsBySelectorRunning(
dev, "app=app-a", 3, 5*time.Second)
Ω(err).NotTo(gomega.HaveOccurred())
The shared helper returns context deadline exceeded when the timeout supplied by the caller expires.
In this case, the quota-preemption test itself supplies the 5-second timeout. The following assertion then fails because that wait returned an error.
The failure occurs during initial setup while waiting for the three app-a pods to become Running. The first quota reduction and the timer-reset behavior that this spec is intended to test have not yet been exercised.
Why change it to 30 seconds
Before the count-aware pod-running wait was introduced for this test, this setup used a 30-second pod-running allowance.
Comparable E2E readiness waits in the repository also use 30 seconds or more.
Using 30 seconds therefore restores an existing readiness allowance rather than introducing a new arbitrary timeout.
Proposed change
- err = kClient.WaitForNPodsBySelectorRunning(dev, "app=app-a", 3, 5*time.Second)
+ err = kClient.WaitForNPodsBySelectorRunning(dev, "app=app-a", 3, 30*time.Second)
Scope
This only changes the maximum amount of time allowed for the initial pod-readiness setup.
It does not change:
- the requirement for exactly three matching pods
- the requirement that those pods reach Running
- the workload
- the shared WaitForNPodsBySelectorRunning helper
- the quota-preemption behavior
- any quota-preemption delay or timer-reset assertion
Validation
Validated locally on Kubernetes v1.24.17 after the change.
Focused Quota_Preemption_Delay_Timer_Reset_On_Quota_Re_Reduction spec:
1 passed, 0 failed
Complete quota-preemption suite:
9 passed, 0 failed, 1 pre-existing pending
No production code was changed.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@yunikorn.apache.org
For additional commands, e-mail: issues-help@yunikorn.apache.org