parallel test fixes - #1308
Conversation
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: vickeybrown The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
|
Skipping CI for Draft Pull Request. |
|
/test all |
|
🤖 To deploy this PR, run the following command: |
|
/test e2e-aws-parallel |
|
/retest |
cbdea4c to
d19bcd3
Compare
|
🤖 To deploy this PR, run the following command: |
|
/test e2e-aws-parallel |
d19bcd3 to
a1f2acc
Compare
|
/test e2e-aws-parallel |
|
🤖 To deploy this PR, run the following command: |
|
@vickeybrown: The following test failed, say
Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
Fix race conditions and silent failures in parallel e2e tests
Several parallel e2e tests are flaky due to race conditions from shared
namespace resource contention and bugs in the test framework helpers.
Framework fixes:
it logged the mismatch but returned success. It now returns an error so tests
actually fail on unexpected priority class values.
message reported CPU values instead of memory values.
causing oc run collisions when multiple tests invoke it concurrently. Changed
to a unique timestamp-based name, matching the fix already applied to
AssertMetricsEndpointUsesHTTPVersion and getMetricResults.
Test race condition fixes:
TestScheduledSuitePriorityClass, TestScheduledSuiteInvalidPriorityClass, and
TestScanSettingBinding all listed scanner pods using the broad "workload":
"scanner" label, which matches pods from any concurrent test in the namespace.
Two of them also listed pods before the scan had started, so the list was
often empty and the checks were silently skipped. The third listed pods after
PhaseDone, when pods may have already been garbage collected.
All three now wait for PhaseRunning to ensure scanner pods exist, then use
GetPodsForScan() to list only pods belonging to the specific scan under test.