Skip to content

Use unambiguous retry suffix to prevent job name collisions - #799

Open
hoxhaeris wants to merge 1 commit into
openshift:mainfrom
hoxhaeris:hoxhaeris/retry-naming-convention
Open

Use unambiguous retry suffix to prevent job name collisions#799
hoxhaeris wants to merge 1 commit into
openshift:mainfrom
hoxhaeris:hoxhaeris/retry-naming-convention

Conversation

@hoxhaeris

@hoxhaeris hoxhaeris commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Summary

Verification job names ending in -<number> (e.g., driver-toolkit-10 for RHEL 10) collide with the retry naming convention (driver-toolkit-1 for retry 1). The regex parser in the release-payload-controller cannot distinguish them, causing job results to be silently dropped.

This changes the retry suffix from a bare number to retry-N format:

  • driver-toolkit-1 (old: retry 1)
  • driver-toolkit-retry-1 (new: retry 1)
  • driver-toolkit-10 (RHEL 10 job, no longer ambiguous)

The regex patterns accept both old and new formats during the transition period so in-flight prowjobs with old names still parse correctly.

Summary by CodeRabbit

  • Bug Fixes
    • Improved retry verification job naming by using clear retry-<n> suffixes.
    • Updated job-name parsing to correctly recognize and extract retry counts, including optional retry- prefixes.
    • Preserved safe job-name generation and truncation for retry and aggregated retry scenarios.

@coderabbitai

coderabbitai Bot commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Warning

Review limit reached

@hoxhaeris, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 30 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 6a36b27d-7cbb-4a1b-9fd0-ecdd27a84792

📥 Commits

Reviewing files that changed from the base of the PR and between f3235b7 and de754fa.

📒 Files selected for processing (5)
  • cmd/release-controller/sync_verify.go
  • cmd/release-controller/sync_verify_prow.go
  • cmd/release-controller/sync_verify_prow_test.go
  • pkg/releasepayload/utils/release-verification-job-details.go
  • pkg/releasepayload/utils/release-verification-job-details_test.go
📝 Walkthrough

Walkthrough

Verification retry job names now use a retry-<count> suffix. Aggregator retry parsing and release payload job-name expressions recognize the new format, with related safe-name and parsing tests updated.

Changes

Verification retry naming

Layer / File(s) Summary
Controller retry suffix handling
cmd/release-controller/sync_verify.go, cmd/release-controller/sync_verify_prow.go, cmd/release-controller/sync_verify_prow_test.go
Retry verification jobs generate retry-<count> suffixes, aggregator parsing extracts the numeric count, and safe job-name expectations are updated.
Release payload retry parsing
pkg/releasepayload/utils/release-verification-job-details.go, pkg/releasepayload/utils/release-verification-job-details_test.go
Job-name expressions accept optional retry- prefixes before numeric counts, with parsing expectations updated for retry job names.

Estimated code review effort: 2 (Simple) | ~10 minutes

Suggested reviewers: alexnpavel

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly matches the main change: switching verification retry suffixes to an unambiguous retry format to avoid job-name collisions.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@openshift-ci

openshift-ci Bot commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: hoxhaeris

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 Jul 20, 2026
@hoxhaeris

Copy link
Copy Markdown
Contributor Author

/hold
I am not sure on the side-effects, or even if this is the right way forward.

@openshift-ci openshift-ci Bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jul 20, 2026

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
pkg/releasepayload/utils/release-verification-job-details_test.go (1)

50-52: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Preserve test coverage for the old suffix format.

Since the regex patterns are explicitly designed to support both the old (-N) and new (-retry-N) suffix formats during the transition phase, consider preserving the original test cases and adding the retry- variations as new, separate test cases.

Modifying the existing tests in-place removes the explicit test coverage that guarantees the backward compatibility claimed in the PR summary.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@pkg/releasepayload/utils/release-verification-job-details_test.go` around
lines 50 - 52, Preserve the existing test case in the release-verification job
details tests for the legacy “-N” suffix format, and add a separate case
covering the “-retry-N” format. Keep each case’s expected
ReleaseVerificationJobDetails values aligned with its respective job name so
both supported patterns remain explicitly tested.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@pkg/releasepayload/utils/release-verification-job-details_test.go`:
- Around line 50-52: Preserve the existing test case in the release-verification
job details tests for the legacy “-N” suffix format, and add a separate case
covering the “-retry-N” format. Keep each case’s expected
ReleaseVerificationJobDetails values aligned with its respective job name so
both supported patterns remain explicitly tested.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: b447a4ef-3848-4519-ab47-06eb04f368f3

📥 Commits

Reviewing files that changed from the base of the PR and between 3403819 and fdaaee5.

📒 Files selected for processing (5)
  • cmd/release-controller/sync_verify.go
  • cmd/release-controller/sync_verify_prow.go
  • cmd/release-controller/sync_verify_prow_test.go
  • pkg/releasepayload/utils/release-verification-job-details.go
  • pkg/releasepayload/utils/release-verification-job-details_test.go

}
}
// Postfix the name to differentiate it from the analysis jobs
prowJobName = prow.GenerateSafeProwJobName(fullProwJobName, aggregatorSuffix)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Can you make sure that this function has tests for this new suffix? Specifically on really long job names because this is literally adding 6 more characters and we need to make sure they resolve properly (which they should, but warrants a test).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Added a test.

@hoxhaeris
hoxhaeris force-pushed the hoxhaeris/retry-naming-convention branch 2 times, most recently from f3235b7 to c69a957 Compare July 20, 2026 13:44
Verification job names ending in -<number> (e.g., driver-toolkit-10
for RHEL 10) collide with the retry naming convention (driver-toolkit-1
for retry 1). The regex parser in the release-payload-controller
cannot distinguish them, causing job results to be silently dropped.

Change the retry suffix from a bare number to retry-N format:
  driver-toolkit-1     (old: retry 1)
  driver-toolkit-retry-1  (new: retry 1)
  driver-toolkit-10       (RHEL 10 job, no longer ambiguous)

The regex patterns accept both old and new formats during the
transition period so in-flight prowjobs with old names still parse
correctly.
@hoxhaeris
hoxhaeris force-pushed the hoxhaeris/retry-naming-convention branch from c69a957 to de754fa Compare July 20, 2026 13:47
@openshift-ci

openshift-ci Bot commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

@hoxhaeris: 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.

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. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants