Skip to content

NO-JIRA: Handle SIGTERM in all of the commands - #6710

Closed
smrtrfszm wants to merge 1 commit into
openshift:mainfrom
smrtrfszm:smrtrfszm/handle-sigterm
Closed

NO-JIRA: Handle SIGTERM in all of the commands#6710
smrtrfszm wants to merge 1 commit into
openshift:mainfrom
smrtrfszm:smrtrfszm/handle-sigterm

Conversation

@smrtrfszm

@smrtrfszm smrtrfszm commented Aug 28, 2025

Copy link
Copy Markdown
Contributor

What this PR does / why we need it:
Kubernetes sends a SIGTERM on termination, so pods can gracefully shut down. A few commands doesn't handle this.

This PR switches the signal handling to use ctrl.SetupSignalHandler() everywhere. This function returns a context that is canceled on SIGINT and also on SIGTERM. Most other commands use this.

Checklist

  • Subject and description added to both, commit and PR.
  • Relevant issues have been referenced.
  • This change includes docs.
  • This change includes unit tests.

Summary by CodeRabbit

  • Refactor
    • Unified shutdown handling to use a standard signal-based cancellable context for the process lifecycle.
  • Bug Fixes
    • More reliable graceful termination, reducing missed interrupts and hang scenarios.
    • Ensures consistent cleanup and exit behavior across environments.

@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Aug 28, 2025
@openshift-ci-robot

Copy link
Copy Markdown

@smrtrfszm: This pull request explicitly references no jira issue.

Details

In response to this:

What this PR does / why we need it:
Kubernetes sends a SIGTERM on termination, so pods can gracefully shut down. The sync-fg-configmap command doesn't handle this.

This PR switches the signal handling to use ctrl.SetupSignalHandler(). This function returns a context that is canceled on SIGINT and also on SIGTERM. All other commands use this.

Checklist

  • Subject and description added to both, commit and PR.
  • Relevant issues have been referenced.
  • This change includes docs.
  • This change includes unit tests.

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.

@coderabbitai

coderabbitai Bot commented Aug 28, 2025

Copy link
Copy Markdown
Contributor

Walkthrough

Replaced custom OS signal handling with controller-runtime’s SetupSignalHandler to obtain a cancellable context in NewRunCommand. Updated imports accordingly and passed the derived context to opts.run(ctx). Error handling and overall invocation remain unchanged.

Changes

Cohort / File(s) Summary
Signal handling refactor
sync-fg-configmap/update.go
Removed os/signal and syscall usage; imported controller-runtime as ctrl; replaced manual context cancellation with ctrl.SetupSignalHandler(); passed ctx to opts.run(ctx); preserved existing error handling flow.

Sequence Diagram(s)

sequenceDiagram
    autonumber
    actor User
    participant Cmd as NewRunCommand
    participant CTRL as controller-runtime (SetupSignalHandler)
    participant Run as opts.run(ctx)

    User->>Cmd: execute command
    Cmd->>CTRL: SetupSignalHandler()
    CTRL-->>Cmd: context with cancel on SIGTERM/SIGINT
    Cmd->>Run: run(ctx)
    alt success
        Run-->>Cmd: nil
        Cmd-->>User: exit 0
    else error
        Run-->>Cmd: error
        Cmd-->>User: exit with error
    end
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

I twitch my ears at signals’ song,
Now runtime guards me, calm and strong.
A gentle ctx hops along,
On cancel’s breeze, we move as one.
Fewer wires, same steadfast run—
Thump-thump! The update’s neatly done. 🐇✨

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 golangci-lint (2.2.2)

Error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/product/migration-guide for migration instructions
The command is terminated due to an error: can't load config: unsupported version of the configuration: "" See https://golangci-lint.run/product/migration-guide for migration instructions

Tip

🔌 Remote MCP (Model Context Protocol) integration is now available!

Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats.


📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between c5d96ca and 9812fed.

📒 Files selected for processing (1)
  • sync-fg-configmap/update.go (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • sync-fg-configmap/update.go
✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbit in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbit in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbit gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbit read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbit help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbit ignore or @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbit summary or @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbit or @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@openshift-ci

openshift-ci Bot commented Aug 28, 2025

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: smrtrfszm
Once this PR has been reviewed and has the lgtm label, please assign csrwng for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found 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 needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label Aug 28, 2025
@openshift-ci

openshift-ci Bot commented Aug 28, 2025

Copy link
Copy Markdown
Contributor

Hi @smrtrfszm. Thanks for your PR.

I'm waiting for a openshift member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

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.

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

Actionable comments posted: 0

🧹 Nitpick comments (5)
sync-fg-configmap/update.go (5)

5-19: Reorder imports: stdlib, external, internal (per repo guidelines).

cmdutil (internal) is currently grouped before external deps. Reorder to satisfy “stdlib, external, internal”.

 import (
-	"context"
-	"fmt"
-	"log"
-	"os"
-
-	cmdutil "github.com/openshift/hypershift/cmd/util"
-
-	corev1 "k8s.io/api/core/v1"
-
-	ctrl "sigs.k8s.io/controller-runtime"
-	"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
-
-	"github.com/spf13/cobra"
+	"context"
+	"fmt"
+	"log"
+	"os"
+
+	corev1 "k8s.io/api/core/v1"
+	ctrl "sigs.k8s.io/controller-runtime"
+	"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
+	"github.com/spf13/cobra"
+
+	cmdutil "github.com/openshift/hypershift/cmd/util"
 )

48-51: Remove redundant os.Exit after log.Fatal.

log.Fatal already calls os.Exit(1); the explicit os.Exit(1) is unreachable.

-		if err := opts.run(ctx); err != nil {
-			log.Fatal(err)
-			os.Exit(1)
-		}
+		if err := opts.run(ctx); err != nil {
+			log.Fatal(err)
+		}

45-52: Optional: prefer RunE and return errors instead of exiting.

Let Cobra handle error propagation and exit codes; it improves composability and testability.

-	cmd.Run = func(cmd *cobra.Command, args []string) {
-		ctx := ctrl.SetupSignalHandler()
-
-		if err := opts.run(ctx); err != nil {
-			log.Fatal(err)
-			os.Exit(1)
-		}
-	}
+	cmd.RunE = func(cmd *cobra.Command, args []string) error {
+		ctx := ctrl.SetupSignalHandler()
+		return opts.run(ctx)
+	}

41-41: Fix flag help typo.

“The path path …” → “The path …”.

-	cmd.Flags().StringVar(&opts.File, "file", opts.File, "The path path to the file that contains the feature gate YAML to apply.")
+	cmd.Flags().StringVar(&opts.File, "file", opts.File, "The path to the file that contains the feature gate YAML to apply.")

57-60: Validate required inputs early (namespace).

Fail fast if namespace isn’t set (env or flag), avoiding confusing API errors.

 func (o *syncFGConfigMapOptions) run(ctx context.Context) error {
+	if o.Namespace == "" {
+		return fmt.Errorf("namespace is required (set --namespace or NAMESPACE env var)")
+	}
 	content, err := os.ReadFile(o.File)
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 197f660 and c5d96ca.

📒 Files selected for processing (1)
  • sync-fg-configmap/update.go (2 hunks)
🧰 Additional context used
📓 Path-based instructions (2)
**/!(*.pb).go

📄 CodeRabbit inference engine (.cursor/rules/100-go-mistakes.mdc)

**/!(*.pb).go: Avoid variable shadowing
Do not over-nest control flow (e.g., nested if or for blocks)
Avoid init() functions unless absolutely necessary
Keep functions small and focused
Prefer composition over inheritance (via embedding)
Use the functional options pattern for constructors where flexibility is needed
Avoid defining interfaces until you need them
Do not return interfaces from constructors or public APIs
Define interfaces on the consumer side, not the producer side
Keep interfaces small and focused (generally 1–2 methods)
Avoid embedding pointer types unless necessary
Don’t overuse getters/setters — prefer public fields when it makes sense
Use value receivers when the method doesn't mutate state or require pointer semantics
Do not use util, common, or similarly vague package names
Avoid package name collisions by using clear, unique names
Do not expose unnecessary symbols (keep exported API minimal)
Distinguish between nil and empty slices
Avoid memory leaks from slicing large arrays
Always check the capacity when copying or appending slices
Preallocate slice capacity when size is known ahead of time
Always initialize maps before use
Check existence with the two-value assignment (val, ok := m[key])
Be aware that ranging over a map is in random order
Always check errors — don’t ignore them
Wrap errors with context when rethrowing
Avoid panics except in truly unrecoverable cases
Use errors.Is and errors.As for error comparison in Go 1.20+
Always defer cancel() when using context.WithCancel
Do not leak goroutines — ensure they exit cleanly
Avoid data races — use mutexes or channels appropriately
Never close a channel from the receiving side
Keep imports grouped and ordered: stdlib, external, internal
Avoid magic numbers — use named constants
Prefer explicit over implicit — especially in exported APIs
Only use generics when they simplify code or add real flexibility
Avoid over-engineering with type parameters
Be cautious with constraint complexity — keep...

Files:

  • sync-fg-configmap/update.go
**/*.go

📄 CodeRabbit inference engine (.cursor/rules/code-formatting.mdc)

Use make lint-fix after writing Go code to automatically fix most linting issues

Follow the rules defined in @100-go-mistakes.mdc for Go code

Files:

  • sync-fg-configmap/update.go
🔇 Additional comments (2)
sync-fg-configmap/update.go (2)

15-16: Good switch to controller-runtime for signal handling.

Using ctrl.SetupSignalHandler standardizes SIGINT/SIGTERM handling and aligns this command with others. LGTM.


46-46: LGTM: context from ctrl.SetupSignalHandler().

This ensures cancellation on both SIGINT and SIGTERM without custom signal plumbing.

@TwoDCube

Copy link
Copy Markdown
Member

/ok-to-test

@openshift-ci openshift-ci Bot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Aug 28, 2025
@bryan-cox

Copy link
Copy Markdown
Member

This will fail verify. We require conventional commits - https://hypershift.pages.dev/contribute/#prior-to-submitting-a-pull-request.

@cwbotbot

cwbotbot commented Aug 28, 2025

Copy link
Copy Markdown

Test Results

e2e-aws

e2e-aks

Failed Tests

Total failed tests: 8

  • TestAutoscaling
  • TestAzureScheduler
  • TestCreateCluster
  • TestCreateClusterDefaultSecurityContextUID
  • TestNodePool

... and 3 more failed tests

@smrtrfszm
smrtrfszm force-pushed the smrtrfszm/handle-sigterm branch from c5d96ca to 9812fed Compare August 28, 2025 16:07
@TwoDCube

Copy link
Copy Markdown
Member

/ok-to-test

@TwoDCube

Copy link
Copy Markdown
Member

/retest-required

Use `ctrl.SetupSignalHandler()` to handle signals. This function returns
a context that is canceled on SIGINT and also on SIGTERM. Kubernetes
sends a SIGTERM signal to allow graceful shutdowns, so this will allow
these commands as well to gracefully shut down. Most of the commands use
this already.
@smrtrfszm
smrtrfszm force-pushed the smrtrfszm/handle-sigterm branch from 9812fed to a1913cd Compare September 10, 2025 08:01
@openshift-ci openshift-ci Bot added area/control-plane-operator Indicates the PR includes changes for the control plane operator - in an OCP release and removed do-not-merge/needs-area labels Sep 10, 2025
@smrtrfszm smrtrfszm changed the title NO-JIRA: Handle SIGTERM in the sync-fg-configmap as well NO-JIRA: Handle SIGTERM in all of the commands Sep 10, 2025
@openshift-ci openshift-ci Bot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Apr 17, 2026
@openshift-ci

openshift-ci Bot commented Apr 17, 2026

Copy link
Copy Markdown
Contributor

PR needs rebase.

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.

@openshift-ci

openshift-ci Bot commented May 11, 2026

Copy link
Copy Markdown
Contributor

@smrtrfszm: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-aks-4-19 9812fed link true /test e2e-aks-4-19
ci/prow/e2e-aws a1913cd link true /test e2e-aws
ci/prow/e2e-aks a1913cd link true /test e2e-aks
ci/prow/e2e-aws-upgrade-hypershift-operator a1913cd link true /test e2e-aws-upgrade-hypershift-operator
ci/prow/e2e-aks-4-20 a1913cd link true /test e2e-aks-4-20
ci/prow/e2e-aks-4-21 a1913cd link true /test e2e-aks-4-21
ci/prow/e2e-azure-self-managed a1913cd link true /test e2e-azure-self-managed
ci/prow/verify-workflows a1913cd link true /test verify-workflows
ci/prow/security a1913cd link true /test security

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.

@openshift-ci

openshift-ci Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Stale PRs are closed after 21d of inactivity.

If this PR is still relevant, comment to refresh it or remove the stale label.
Mark the PR as fresh by commenting /remove-lifecycle stale.

If this PR is safe to close now please do so with /close.

/lifecycle stale

@openshift-ci openshift-ci Bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jun 11, 2026
@openshift-ci

openshift-ci Bot commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

Stale PRs rot after 14d of inactivity.

Mark the PR as fresh by commenting /remove-lifecycle rotten.
Rotten PRs close after an additional 7d of inactivity.

If this PR is safe to close now please do so with /close.

/lifecycle rotten
/remove-lifecycle stale

@openshift-ci openshift-ci Bot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Jun 25, 2026
@hypershift-jira-solve-ci

Copy link
Copy Markdown
Contributor

I now have all the evidence needed. Here is the complete analysis:

Test Failure Analysis Complete

Job Information

  • Prow Job: pull-ci-openshift-hypershift-main-{e2e-aws, e2e-aks, e2e-kubevirt-aws-ovn-reduced, e2e-aws-upgrade-hypershift-operator, verify-workflows, security}
  • Build IDs: 1966499860492324864 (e2e-aws), 1966499860307775488 (e2e-aks), 1966499860613959680 (e2e-kubevirt), 1966499860551045120 (e2e-aws-upgrade), 2045129791597711360 (verify-workflows), 2053900710201790464 (security)
  • PR: NO-JIRA: Handle SIGTERM in all of the commands #6710NO-JIRA: Handle SIGTERM in all of the commands
  • PR Branch: smrtrfszm/handle-sigterm
  • PR Commit: a1913cd6785bb9a4591b1698d517f5d8da98361e
  • PR Status: CONFLICTING (GitHub merge state)

Test Failure Analysis

Error

Auto-merging sync-fg-configmap/update.go
CONFLICT (content): Merge conflict in sync-fg-configmap/update.go
Automatic merge failed; fix conflicts and then commit the result.
# Error: exit status 1
# Final SHA:
# Total runtime: 0s

Summary

All 7 failing CI jobs are caused by a git merge conflict in sync-fg-configmap/update.go. The PR branch has not been rebased since it was created on 2025-08-28 (10 months ago). Since then, two commits landed on main that modified the same file — a unit-test refactoring commit (2026-04-07, 66b6ad85) that added a crclient import and extracted a reconcile() method, and a dupword fix (2026-05-27, a6e6d7c4) that changed a help string. The PR modifies the import block of this same file (removing os/signal and syscall, adding ctrl "sigs.k8s.io/controller-runtime"), and these overlapping changes to the import section produce an unresolvable merge conflict. Prow cannot merge the PR into main to build the test binary, so every job fails at the clone/checkout step before any code compilation or test execution begins. No tests were actually run.

Root Cause

The PR branch smrtrfszm/handle-sigterm is 10 months stale and has a merge conflict with main in sync-fg-configmap/update.go. The conflict is in the import block:

What the PR does to sync-fg-configmap/update.go:

  • Removes "os/signal" and "syscall" imports
  • Adds ctrl "sigs.k8s.io/controller-runtime" import
  • Replaces the manual signal handler goroutine with ctrl.SetupSignalHandler()

What changed on main since the PR was created:

  1. 2026-04-07 (66b6ad85): Added crclient "sigs.k8s.io/controller-runtime/pkg/client" import and refactored the run() method to extract a reconcile() method — this changed the import block in the same region the PR modifies.
  2. 2026-05-27 (a6e6d7c4): Fixed a dupword typo in a help string ("The path path to""The path to") — located near the cmd.Run function where the PR also makes changes.

Both sets of changes touch lines adjacent to or overlapping with the PR's modifications, making git unable to auto-merge.

The 4 older e2e jobs (build IDs 196649986*, from 2025-08-28) have had their GCS artifacts garbage-collected so the exact error cannot be confirmed from logs. However, GitHub reports all 4 failed with BaseSHA:141ae71a4c2f7b81d4e6670b57984b6423afeb87, and since the PR was already stale at that point (the file had been modified on main), the same merge conflict is the cause.

The tide check explicitly reports: "Not mergeable. PR has a merge conflict.", confirming the conflict is the blocking issue across all jobs.

Note on verify-workflows (build 2045129791597711360): The build log shows it checked out PR #6871 instead of #6710, though its prowjob.json references PR #6710. This build failed with merge conflicts in go.mod, go.sum, and vendor/modules.txt — a different set of conflicts caused by the same branch staleness issue.

Recommendations
  1. Rebase the PR branch onto current main: This is the required fix. The branch needs to be updated to resolve the merge conflict in sync-fg-configmap/update.go and potentially other files that have diverged over 10 months.

    git checkout smrtrfszm/handle-sigterm
    git rebase origin/main
    # Resolve conflicts in sync-fg-configmap/update.go:
    #   - Keep the crclient import added on main
    #   - Apply the PR's ctrl import addition and os/signal + syscall removal
    #   - Apply the PR's signal handler replacement with ctrl.SetupSignalHandler()
    git push --force-with-lease
  2. After rebasing, verify no additional conflicts: Given the 10-month gap, other files modified by the PR (etcd-defrag/main.go, ignition-server/cmd/start.go, kas-bootstrap/main.go, token-minter/tokenminter.go) should also be checked for semantic conflicts even if git can auto-merge them — the surrounding code may have changed in ways that affect the correctness of the ctrl.SetupSignalHandler() replacement.

  3. Re-trigger all CI jobs after pushing the rebased branch — the current failures are purely from the merge conflict and no test code was ever compiled or executed.

Evidence
Evidence Detail
GitHub merge state "mergeable": "CONFLICTING" — PR cannot be merged
Tide status "Not mergeable. PR has a merge conflict."
security build log (2053900710201790464) CONFLICT (content): Merge conflict in sync-fg-configmap/update.go at BaseSHA 1cec72f5
verify-workflows build log (2045129791597711360) CONFLICT (content): Merge conflict in go.mod, go.sum, vendor/modules.txt at BaseSHA 1180bcaf
PR creation date 2025-08-28 — branch is ~10 months stale
PR commit a1913cd6785bb9a4591b1698d517f5d8da98361e (single commit, never rebased)
Conflicting main commit #1 66b6ad85 (2026-04-07) — added crclient import and reconcile() method to sync-fg-configmap/update.go
Conflicting main commit #2 a6e6d7c4 (2026-05-27) — dupword fix in the same file
PR's base parent commit 9a020d5b — file had old import block without crclient
Current main file state Still has os/signal, syscall imports + crclient import added later — PR removes the first two but doesn't know about the third
e2e-aws/aks/kubevirt/upgrade artifacts GCS artifacts garbage-collected (build IDs 196649986* from 2025-08-28), but all share BaseSHA 141ae71a and same stale PR commit
Passing CI jobs images, okd-scos-images, verify-deps passed at BaseSHA 9a020d5b (original base before conflicts existed); unit and verify passed at later BaseSHAs where those specific jobs' build steps succeeded

@openshift-ci

openshift-ci Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Rotten PRs close after 7d of inactivity.

Reopen the PR by commenting /reopen.
Mark the PR as fresh by commenting /remove-lifecycle rotten.

/close

@openshift-ci openshift-ci Bot closed this Jul 3, 2026
@openshift-ci

openshift-ci Bot commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

@openshift-ci[bot]: Closed this PR.

Details

In response to this:

Rotten PRs close after 7d of inactivity.

Reopen the PR by commenting /reopen.
Mark the PR as fresh by commenting /remove-lifecycle rotten.

/close

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.

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

Labels

area/control-plane-operator Indicates the PR includes changes for the control plane operator - in an OCP release jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. ok-to-test Indicates a non-member PR verified by an org member that is safe to test.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants