Skip to content

[release-4.22] OCPBUGS-85020: e2e: Add irqbalance StartLimitBurst >= 100 config test#1506

Merged
openshift-merge-bot[bot] merged 1 commit intoopenshift:release-4.22from
openshift-cherrypick-robot:cherry-pick-1493-to-release-4.22
May 7, 2026
Merged

[release-4.22] OCPBUGS-85020: e2e: Add irqbalance StartLimitBurst >= 100 config test#1506
openshift-merge-bot[bot] merged 1 commit intoopenshift:release-4.22from
openshift-cherrypick-robot:cherry-pick-1493-to-release-4.22

Conversation

@openshift-cherrypick-robot
Copy link
Copy Markdown

This is an automated cherry-pick of #1493

/assign oblau

Automating OCPBUGS-45112 - Config test
CRI-O restarts irqbalance on every guaranteed pod create/delete.
The default systemd StartLimitBurst=5 was too low
Fix was drop-in from cri-o raising StartLimitBurst to 100.
Checking for this updated value

added systemd.ShowPropertyValue to utils/systemd/systemd.go

Signed-off-by: oblau <oblau@redhat.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 5, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: e6e67e9d-44d1-4a61-8117-889a19160407

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands and usage tips.

@qodo-code-review
Copy link
Copy Markdown

Review Summary by Qodo

Add irqbalance StartLimitBurst >= 100 e2e configuration test

🧪 Tests ✨ Enhancement

Grey Divider

Walkthroughs

Description
• Add e2e test for irqbalance StartLimitBurst >= 100 configuration
• Implement systemd.ShowPropertyValue utility function for property queries
• Automate OCPBUGS-45112 verification in performance profile tests
• Validate irqbalance restart limit configuration on worker nodes
Diagram
flowchart LR
  A["irqbalance.go test"] -->|uses| B["systemd.ShowPropertyValue"]
  B -->|queries| C["systemctl show property"]
  C -->|validates| D["StartLimitBurst >= 100"]
  D -->|verifies| E["OCPBUGS-45112 fix"]
Loading

Grey Divider

File Changes

1. test/e2e/performanceprofile/functests/1_performance/irqbalance.go 🧪 Tests +16/-1

Add irqbalance StartLimitBurst configuration validation test

• Added new e2e test case to verify irqbalance StartLimitBurst >= 100 configuration
• Imported strconv package for integer conversion and systemd utility package
• Updated test suite description from "Checking IRQBalance settings" to "IRQBalance"
• Test queries systemd property, validates value is >= 100, and logs results

test/e2e/performanceprofile/functests/1_performance/irqbalance.go


2. test/e2e/performanceprofile/functests/utils/systemd/systemd.go ✨ Enhancement +6/-0

Add systemd property value query utility function

• Added new ShowPropertyValue function to query systemd unit properties with --value flag
• Function returns only the property value without the property name prefix
• Mirrors existing ShowProperty function but uses --value flag for cleaner output

test/e2e/performanceprofile/functests/utils/systemd/systemd.go


Grey Divider

Qodo Logo

@qodo-code-review
Copy link
Copy Markdown

qodo-code-review Bot commented May 5, 2026

Code Review by Qodo

🐞 Bugs (1) 📘 Rule violations (0)

Grey Divider


Action required

1. ShowPropertyValue can time out 🐞 Bug ☼ Reliability
Description
systemd.ShowPropertyValue runs systemctl show ... --value, which can legitimately return empty
stdout for unset/empty properties; the node exec path polls until stdout is non-empty, so this can
hang for ~1 minute and then fail even when the command succeeded. The helper also builds a shell
string via bash -c, making argument handling brittle compared to passing argv directly.
Code

test/e2e/performanceprofile/functests/utils/systemd/systemd.go[R23-26]

+func ShowPropertyValue(ctx context.Context, unitfile string, property string, node *corev1.Node) (string, error) {
+	cmd := []string{"/bin/bash", "-c", fmt.Sprintf("chroot /rootfs systemctl show -p %s %s --value --no-pager", property, unitfile)}
+	out, err := nodes.ExecCommand(ctx, node, cmd)
+	return string(out), err
Evidence
nodes.ExecCommand executes via the node-inspector daemon pod using pods.WaitForPodOutput, which
explicitly retries until len(out) != 0; therefore, any command with valid empty stdout will be
treated as “not ready” and will time out. The repo already documents this exact failure mode for
other node commands when output may be empty.

test/e2e/performanceprofile/functests/utils/systemd/systemd.go[23-26]
test/e2e/performanceprofile/functests/utils/node_inspector/inspector.go[152-169]
test/e2e/performanceprofile/functests/utils/pods/pods.go[248-262]
test/e2e/performanceprofile/functests/1_performance/irqbalance.go[537-540]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
`systemd.ShowPropertyValue()` executes `systemctl show ... --value` through `nodes.ExecCommand()`. The node exec stack uses `pods.WaitForPodOutput()` which waits until stdout is non-empty; if the property value is legitimately empty, the helper will poll for up to a minute and then fail.

### Issue Context
This is a known constraint in this test framework (commands with empty stdout can fail/time out). A value-only systemd query is more likely to return empty output than the `Key=Value` form.

### Fix Focus Areas
- Implement `ShowPropertyValue` without relying on `--value` producing non-empty stdout, e.g.:
 - run `systemctl show -p <prop> <unit> --no-pager` (no `--value`), then parse the returned `Prop=...` line to extract the value.
 - Prefer passing argv directly (e.g. `[]string{"chroot","/rootfs","systemctl","show","-p",property,unitfile,"--no-pager"}`) instead of `bash -c`.
- file focus:
 - test/e2e/performanceprofile/functests/utils/systemd/systemd.go[23-26]

### Notes
After parsing, return the raw value (optionally trimmed). Ensure the function behaves correctly when the value is empty (should return "" with nil error).

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Qodo Logo

@openshift-ci openshift-ci Bot requested review from Tal-or and yanirq May 5, 2026 14:06
@openshift-ci-robot
Copy link
Copy Markdown
Contributor

@openshift-cherrypick-robot: Jira Issue OCPBUGS-84938 has been cloned as Jira Issue OCPBUGS-85020. Will retitle bug to link to clone.

WARNING: Unexpected sprint field type []interface {} on source issue. Please update sprint manually on clone.

/retitle [release-4.22] OCPBUGS-85020: e2e: Add irqbalance StartLimitBurst >= 100 config test

Details

In response to this:

This is an automated cherry-pick of #1493

/assign oblau

Instructions 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 openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci openshift-ci Bot changed the title [release-4.22] OCPBUGS-84938: e2e: Add irqbalance StartLimitBurst >= 100 config test [release-4.22] OCPBUGS-85020: e2e: Add irqbalance StartLimitBurst >= 100 config test May 5, 2026
@openshift-ci-robot openshift-ci-robot added jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels May 5, 2026
@openshift-ci-robot
Copy link
Copy Markdown
Contributor

@openshift-cherrypick-robot: This pull request references Jira Issue OCPBUGS-85020, which is invalid:

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

The bug has been updated to refer to the pull request using the external bug tracker.

Details

In response to this:

This is an automated cherry-pick of #1493

/assign oblau

Instructions 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 openshift-eng/jira-lifecycle-plugin repository.

@oblau
Copy link
Copy Markdown
Member

oblau commented May 5, 2026

/jira refresh

@openshift-ci-robot
Copy link
Copy Markdown
Contributor

@oblau: This pull request references Jira Issue OCPBUGS-85020, which is invalid:

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

Details

In response to this:

/jira refresh

Instructions 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 openshift-eng/jira-lifecycle-plugin repository.

Comment on lines +23 to +26
func ShowPropertyValue(ctx context.Context, unitfile string, property string, node *corev1.Node) (string, error) {
cmd := []string{"/bin/bash", "-c", fmt.Sprintf("chroot /rootfs systemctl show -p %s %s --value --no-pager", property, unitfile)}
out, err := nodes.ExecCommand(ctx, node, cmd)
return string(out), err
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

1. Showpropertyvalue can time out 🐞 Bug ☼ Reliability

systemd.ShowPropertyValue runs systemctl show ... --value, which can legitimately return empty
stdout for unset/empty properties; the node exec path polls until stdout is non-empty, so this can
hang for ~1 minute and then fail even when the command succeeded. The helper also builds a shell
string via bash -c, making argument handling brittle compared to passing argv directly.
Agent Prompt
### Issue description
`systemd.ShowPropertyValue()` executes `systemctl show ... --value` through `nodes.ExecCommand()`. The node exec stack uses `pods.WaitForPodOutput()` which waits until stdout is non-empty; if the property value is legitimately empty, the helper will poll for up to a minute and then fail.

### Issue Context
This is a known constraint in this test framework (commands with empty stdout can fail/time out). A value-only systemd query is more likely to return empty output than the `Key=Value` form.

### Fix Focus Areas
- Implement `ShowPropertyValue` without relying on `--value` producing non-empty stdout, e.g.:
  - run `systemctl show -p <prop> <unit> --no-pager` (no `--value`), then parse the returned `Prop=...` line to extract the value.
  - Prefer passing argv directly (e.g. `[]string{"chroot","/rootfs","systemctl","show","-p",property,unitfile,"--no-pager"}`) instead of `bash -c`.
- file focus:
  - test/e2e/performanceprofile/functests/utils/systemd/systemd.go[23-26]

### Notes
After parsing, return the raw value (optionally trimmed). Ensure the function behaves correctly when the value is empty (should return "" with nil error).

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

@oblau
Copy link
Copy Markdown
Member

oblau commented May 5, 2026

/jira refresh

@openshift-ci-robot openshift-ci-robot added jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. and removed jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels May 5, 2026
@openshift-ci-robot
Copy link
Copy Markdown
Contributor

@oblau: This pull request references Jira Issue OCPBUGS-85020, which is valid. The bug has been moved to the POST state.

7 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (4.22.0) matches configured target version for branch (4.22.0)
  • bug is in the state New, which is one of the valid states (NEW, ASSIGNED, POST)
  • release note type set to "Release Note Not Required"
  • dependent bug Jira Issue OCPBUGS-84938 is in the state ON_QA, which is one of the valid states (MODIFIED, ON_QA, VERIFIED)
  • dependent Jira Issue OCPBUGS-84938 targets the "5.0.0" version, which is one of the valid target versions: 5.0.0
  • bug has dependents
Details

In response to this:

/jira refresh

Instructions 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 openshift-eng/jira-lifecycle-plugin repository.

@yanirq
Copy link
Copy Markdown
Contributor

yanirq commented May 5, 2026

/approve
/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label May 5, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 5, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: openshift-cherrypick-robot, yanirq

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label May 5, 2026
@yanirq
Copy link
Copy Markdown
Contributor

yanirq commented May 6, 2026

/retest

@oblau
Copy link
Copy Markdown
Member

oblau commented May 6, 2026

/jira refresh

@openshift-ci-robot
Copy link
Copy Markdown
Contributor

@oblau: This pull request references Jira Issue OCPBUGS-85020, which is valid.

7 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (4.22.0) matches configured target version for branch (4.22.0)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, POST)
  • release note type set to "Release Note Not Required"
  • dependent bug Jira Issue OCPBUGS-84938 is in the state Verified, which is one of the valid states (MODIFIED, ON_QA, VERIFIED)
  • dependent Jira Issue OCPBUGS-84938 targets the "5.0.0" version, which is one of the valid target versions: 5.0.0
  • bug has dependents
Details

In response to this:

/jira refresh

Instructions 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 openshift-eng/jira-lifecycle-plugin repository.

@oblau
Copy link
Copy Markdown
Member

oblau commented May 6, 2026

/retest

@oblau
Copy link
Copy Markdown
Member

oblau commented May 6, 2026

/jira refresh

@openshift-ci-robot openshift-ci-robot added jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. and removed jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. labels May 6, 2026
@openshift-ci-robot
Copy link
Copy Markdown
Contributor

@oblau: This pull request references Jira Issue OCPBUGS-85020, which is invalid:

  • expected the bug to be in one of the following states: NEW, ASSIGNED, POST, but it is Verified instead

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

Details

In response to this:

/jira refresh

Instructions 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 openshift-eng/jira-lifecycle-plugin repository.

@oblau
Copy link
Copy Markdown
Member

oblau commented May 6, 2026

/jira refresh

@openshift-ci-robot openshift-ci-robot added jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. and removed jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels May 6, 2026
@openshift-ci-robot
Copy link
Copy Markdown
Contributor

@oblau: This pull request references Jira Issue OCPBUGS-85020, which is valid.

7 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (4.22.0) matches configured target version for branch (4.22.0)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, POST)
  • release note type set to "Release Note Not Required"
  • dependent bug Jira Issue OCPBUGS-84938 is in the state Verified, which is one of the valid states (MODIFIED, ON_QA, VERIFIED)
  • dependent Jira Issue OCPBUGS-84938 targets the "5.0.0" version, which is one of the valid target versions: 5.0.0
  • bug has dependents
Details

In response to this:

/jira refresh

Instructions 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 openshift-eng/jira-lifecycle-plugin repository.

@oblau
Copy link
Copy Markdown
Member

oblau commented May 6, 2026

/verified by oblau

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label May 6, 2026
@openshift-ci-robot
Copy link
Copy Markdown
Contributor

@oblau: This PR has been marked as verified by oblau.

Details

In response to this:

/verified by oblau

Instructions 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 openshift-eng/jira-lifecycle-plugin repository.

@oblau
Copy link
Copy Markdown
Member

oblau commented May 6, 2026

/jira refresh

@openshift-ci-robot openshift-ci-robot removed the jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. label May 6, 2026
@openshift-ci-robot
Copy link
Copy Markdown
Contributor

@oblau: This pull request references Jira Issue OCPBUGS-85020, which is invalid:

  • expected the bug to be in one of the following states: NEW, ASSIGNED, POST, but it is Verified instead

Comment /jira refresh to re-evaluate validity if changes to the Jira bug are made, or edit the title of this pull request to link to a different bug.

Details

In response to this:

/jira refresh

Instructions 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 openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci-robot openshift-ci-robot added the jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. label May 6, 2026
@oblau
Copy link
Copy Markdown
Member

oblau commented May 6, 2026

/jira refresh

@openshift-ci-robot openshift-ci-robot added the jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. label May 6, 2026
@openshift-ci-robot
Copy link
Copy Markdown
Contributor

@oblau: This pull request references Jira Issue OCPBUGS-85020, which is valid.

7 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (4.22.0) matches configured target version for branch (4.22.0)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, POST)
  • release note type set to "Release Note Not Required"
  • dependent bug Jira Issue OCPBUGS-84938 is in the state Verified, which is one of the valid states (MODIFIED, ON_QA, VERIFIED)
  • dependent Jira Issue OCPBUGS-84938 targets the "5.0.0" version, which is one of the valid target versions: 5.0.0
  • bug has dependents
Details

In response to this:

/jira refresh

Instructions 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 openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci-robot openshift-ci-robot removed the jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. label May 6, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented May 6, 2026

@openshift-cherrypick-robot: all tests passed!

Full PR test history. Your PR dashboard.

Details

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

@yanirq
Copy link
Copy Markdown
Contributor

yanirq commented May 7, 2026

/label backport-risk-assessed

test changes only. no core payload

@openshift-ci openshift-ci Bot added the backport-risk-assessed Indicates a PR to a release branch has been evaluated and considered safe to accept. label May 7, 2026
@openshift-merge-bot openshift-merge-bot Bot merged commit 74d2449 into openshift:release-4.22 May 7, 2026
18 checks passed
@openshift-ci-robot
Copy link
Copy Markdown
Contributor

@openshift-cherrypick-robot: Jira Issue Verification Checks: Jira Issue OCPBUGS-85020
✔️ This pull request was pre-merge verified.
✔️ All associated pull requests have merged.
✔️ All associated, merged pull requests were pre-merge verified.

Jira Issue OCPBUGS-85020 has been moved to the MODIFIED state and will move to the VERIFIED state when the change is available in an accepted nightly payload. 🕓

Details

In response to this:

This is an automated cherry-pick of #1493

/assign oblau

Instructions 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 openshift-eng/jira-lifecycle-plugin repository.

@openshift-merge-robot
Copy link
Copy Markdown
Contributor

Fix included in release 4.22.0-0.nightly-2026-05-07-131723

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. backport-risk-assessed Indicates a PR to a release branch has been evaluated and considered safe to accept. jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants