Skip to content

Conversation

@rafabene
Copy link
Contributor

@rafabene rafabene commented Feb 9, 2026

Summary

  • Adds a temporary integration test (TestClusterPanicFailure) that intentionally panics to verify whether Prow correctly reports the failure status back to GitHub.
  • This is a diagnostic test to investigate suspected issues with Prow not reporting integration test failures.
  • Jira: https://issues.redhat.com/browse/HYPERFLEET-625

What this tests

The test calls panic() after initializing the integration test helper. This simulates a crash during test execution to check if:

  1. gotestsum captures the panic and returns a non-zero exit code
  2. Prow picks up the failure and reports it on the PR

Cleanup

This test must be removed after confirming the Prow behavior.

Summary by CodeRabbit

  • Chores
    • Improved teardown reliability: bounded teardown operations with a 30s timeout, added a watchdog to abort hung teardowns, and enforced a deterministic stop order for services.
  • Tests
    • Added a temporary integration test that triggers a failure for verification.
    • Updated test helpers to explicitly start/stop health and mock services and perform timeout-aware teardown.

@openshift-ci openshift-ci bot requested review from 86254860 and yasun1 February 9, 2026 12:54
@openshift-ci
Copy link

openshift-ci bot commented Feb 9, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign vkareh 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

@rafabene rafabene changed the title test: Verify Prow reports integration test panic failures HYPERFLEET-625 - test: Verify Prow reports integration test panic failures Feb 9, 2026
@rafabene rafabene force-pushed the test/integration-failure-reporting branch from 76207ad to 87e9dff Compare February 9, 2026 13:49
@coderabbitai
Copy link

coderabbitai bot commented Feb 9, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Test teardown and helpers were reordered: the Health server is now started during setup and stopped during teardown before the JWK mock teardown. pkg/db Testcontainer.Close now uses a 30-second timeout context for container termination and SQL close operations. TestMain introduces a 45-second watchdog goroutine that logs an error and force-exits with a non-zero code if teardown hangs. A new integration test, TestClusterPanicFailure, was added to intentionally panic for CI failure verification.

Sequence Diagram(s)

mermaid
sequenceDiagram
participant TestRunner
participant TeardownCoordinator
participant APIServer
participant MetricsServer
participant HealthServer
participant JWKMock
participant DBSession
TestRunner->>TeardownCoordinator: Initiate teardown
TeardownCoordinator->>APIServer: stop
TeardownCoordinator->>MetricsServer: stop
TeardownCoordinator->>HealthServer: stop
TeardownCoordinator->>JWKMock: teardown (after servers)
TeardownCoordinator->>DBSession: Close (30s ctx)
APIServer-->>TeardownCoordinator: stopped / error
MetricsServer-->>TeardownCoordinator: stopped / error
HealthServer-->>TeardownCoordinator: stopped / error
JWKMock-->>TeardownCoordinator: torn down / error
DBSession-->>TeardownCoordinator: closed / error
TeardownCoordinator-->>TestRunner: aggregated result

mermaid
sequenceDiagram
participant TestRunner
participant Watchdog
participant TeardownCoordinator
TestRunner->>Watchdog: start (45s timer)
TestRunner->>TeardownCoordinator: run teardown
Watchdog->>Watchdog: sleep 45s
alt Teardown completes before timeout
TeardownCoordinator-->>Watchdog: done
Watchdog-->>TestRunner: cancel
else Timeout reached
Watchdog->>TestRunner: log error
Watchdog->>TestRunner: os.Exit(non-zero)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested labels

lgtm

Suggested reviewers

  • crizzo71
🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main objective of the PR: adding a temporary integration test to verify Prow reports panic failures.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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

@rafabene rafabene force-pushed the test/integration-failure-reporting branch 3 times, most recently from 673cf24 to 2f60556 Compare February 9, 2026 16:14
@coderabbitai
Copy link

coderabbitai bot commented Feb 9, 2026

Caution

Failed to replace (edit) comment. This is likely due to insufficient permissions or the comment being deleted.

Error details
{"name":"HttpError","status":500,"request":{"method":"PATCH","url":"https://api.github.com/repos/openshift-hyperfleet/hyperfleet-api/issues/comments/3871837751","headers":{"accept":"application/vnd.github.v3+json","user-agent":"octokit.js/0.0.0-development octokit-core.js/7.0.6 Node.js/24","authorization":"token [REDACTED]","content-type":"application/json; charset=utf-8"},"body":{"body":"<!-- This is an auto-generated comment: summarize by coderabbit.ai -->\n<!-- This is an auto-generated comment: review in progress by coderabbit.ai -->\n\n> [!NOTE]\n> Currently processing new changes in this PR. This may take a few minutes, please wait...\n> \n> \n> \n> \n> \n> <sub>✏️ Tip: You can disable in-progress messages and the fortune message in your review settings.</sub>\n\n<!-- end of auto-generated comment: review in progress by coderabbit.ai -->\n<!-- usage_tips_start -->\n\n> [!TIP]\n> <details>\n> <summary>You can make CodeRabbit's review stricter and more nitpicky using the `assertive` profile, if that's what you prefer.</summary>\n> \n> Change the `reviews.profile` setting to `assertive` to make CodeRabbit's nitpick more issues in your PRs.\n> \n> </details>\n\n<!-- usage_tips_end -->\n<!-- walkthrough_start -->\n\n## Walkthrough\n\nThese changes make two separate modifications: one adds a 30-second timeout context to the database session Close method's teardown operations to prevent hanging during cleanup, and the other adds a new test function that intentionally panics to verify Prow failure reporting behavior. Both changes are localized and do not alter core logic or error handling beyond their specific scopes.\n\n## Estimated code review effort\n\n🎯 1 (Trivial) | ⏱️ ~5 minutes\n\n<!-- walkthrough_end -->\n\n<!-- pre_merge_checks_walkthrough_start -->\n\n<details>\n<summary>🚥 Pre-merge checks | ✅ 3</summary>\n\n<details>\n<summary>✅ Passed checks (3 passed)</summary>\n\n|     Check name     | Status   | Explanation                                                                                                                                                                                                                           |\n| :----------------: | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n|  Description Check | ✅ Passed | Check skipped - CodeRabbit’s high-level summary is enabled.                                                                                                                                                                           |\n|     Title check    | ✅ Passed | The title clearly and specifically summarizes the main change: adding a test to verify Prow's failure reporting for integration test panics. It is directly related to the primary changeset (TestClusterPanicFailure test addition). |\n| Docstring Coverage | ✅ Passed | Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.                                                                                                                                                  |\n\n</details>\n\n<sub>✏️ Tip: You can configure your own custom pre-merge checks in the settings.</sub>\n\n</details>\n\n<!-- pre_merge_checks_walkthrough_end -->\n\n<!-- finishing_touch_checkbox_start -->\n\n<details>\n<summary>✨ Finishing touches</summary>\n\n- [ ] <!-- {\"checkboxId\": \"7962f53c-55bc-4827-bfbf-6a18da830691\"} --> 📝 Generate docstrings\n<details>\n<summary>🧪 Generate unit tests (beta)</summary>\n\n- [ ] <!-- {\"checkboxId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\", \"radioGroupId\": \"utg-output-choice-group-unknown_comment_id\"} -->   Create PR with unit tests\n- [ ] <!-- {\"checkboxId\": \"07f1e7d6-8a8e-4e23-9900-8731c2c87f58\", \"radioGroupId\": \"utg-output-choice-group-unknown_comment_id\"} -->   Post copyable unit tests in a comment\n\n</details>\n\n</details>\n\n<!-- finishing_touch_checkbox_end -->\n\n<!-- tips_start -->\n\n---\n\n\n\n<sub>Comment `@coderabbitai help` to get the list of available commands and usage tips.</sub>\n\n<!-- tips_end -->\n\n<!-- internal state start -->\n\n\n<!-- DwQgtGAEAqAWCWBnSTIEMB26CuAXA9mAOYCmGJATmriQCaQDG+Ats2bgFyQAOFk+AIwBWJBrngA3EsgEBPRvlqU0AgfFwA6NPEgQAfACgjoCEYDEZyAAUASpETZWaCrI4Go0dQBsSXABIAmlYAojYAYgAywcHQYABsAEwArLqQNIickABqlPAAZvJWFPgA7pAUJNz4FLjI8Bg0RFTi+FjpuDyY8AyQedpe2BWI7pAAco4ClAD0AKo2EVxmACwAnJCAKASQsLi43IgcU1NE6rDYAhpMzFP43GSICHm4YLCytxR5PiS4Uy9vHyRfMBobjwKbcbBeLxTVYjACCeFg1SmAioGAYsC4VD6k3IABp7PhBgwSJAUZh0WlpN96o1mvBWmA+vABhUwBUqjV6kRdHo0s5SB1mNoMCMAMq4ajYRBTNgS2jUNBcG5kADc5RIEngJBKlH2kFkaAcGAAjPiAByJJJLC0ABjVDAq1DokASNoScTAbs9K2gxoSHCtHBtZoAWiMACLSB3wbgtLAOJwuNyQVKw2i0ZBoSnMDnOeQ0khNaj0tpUyAACmgVIAwgMMpQrF0GGF+oMSABKNKwagoBrsEtoSHyBiDrzIbhN8udtCPSi99TwQfwABeXK7JILRbjlIyWxIXjeaXw9ngzAhTvQjCo90gtEGa/akBIAA9RHgSxoDCmoFZBlVEBuyC0IuRAYPgGTdFwUgUPk8glLAXwIXwRSlBWmpZkQ+DtAm6AYPQuAIZA1YAJKQEIgidkwFAVGIXjDsCuBtpmeHqhytS9rSxatDuHQThg3S9K2QykmgDAANZHpAADi6h+GcGz2LcDD5N0o7yARPaYdhjjqoxFAYJmkBgRgYDLpQx4vuoChKLh9AoWU7LVOxBEkkyLIktxLnWDYn7fmMWHSF2PZeY+Z67pM6rMPgUj0DONB8EwGB5PAFDMGu9mkiQ3aatUvmpDYJB5JQZDEsgABSKWKlsOx7AcUxIA40gaBUtDdpolzIsUJQAVMgQhOEUQxPEyTmJY1YsGlgrSIgaCkMgCZCi4FatHRKB5JAUqFRC7ZuFA42sFZxpcGmGaXgAzDaYAAYl+GniQhIdIlNDPh0BAwFST3CpQGi1uBJBThWNDOLQpQYJ2b1oBI+DwPQ3YYEQyDwcVCgNF9FAaFWqX1E6AMCF4+DiZms58FmfHdPi8HdLAjCYDwFRSA0650wT029MUzBPs+C7w7ZkA+JDJJeRl5ECL2l63Hha4ZE6n57RNVn+pAJ3IF5BYNAOXidPxPSbnSnllpt+HHtBsHWF1gnMm2rFOVyn7uGAhgGCYUBkPQ+DrWgeCEKQ5DNM6lxsA0XC8PwwiiOIUgyMOijKKo6haDo+hO+AHgIHUzE4AQxBkMoND0AH7CYmgZQLXmpLR0oVBx5o2i6A7RjJ6YBjcGJRBTLQAjtwIAD6AGIIgJZTO0n31N9mFuAARFPBgWErxHZ77Tr0KXS3u4wcNzUYcAkr9AGQLKiL0GBZSbYZF1XaIrS3WwD0o89HR5NUlLA6D/BvFxBn4uyXiiQ+hG8BqekUoeA/3qHfF8mgABColW7FGwHhKcGgYBpyfAZJilIsYYA/rzfGRBjg8zvDBHmQMKAgxKFgEcbQ7r8DwL2esaA3brQ3lyfEmB8KEUshBHmyo9YGQrAwfGA9iGEVFAARQiCjcgYgSy83imlLB4hhEkhHr7TsFB4EbTwnOAiqABCEi0fnVo98kGwhpmifcvR4HSO4qgQciBjwMKULFFiSgirUToEg0Yx4sJIT5vgY4PR0SYDmpJJ6xRNYfFQk/SgxQ+Bw1oF4NckxZBXyZogJgtxr73VoZMbK9J0YNxnpYWEXh4ofxVseLySgBHOHKfwdaL42LOifuCPGAl+ziGkEYKAo1IAAFkuhFV3GEZkJJYRYLomZCgRgIij2QEE+GdAuAAGokhTDAMaIwwQIJCjztZEk9MtRlEKo/GoXA+l0HgI4AwU8J7dKbu0eqfYtyDwEVKeKiBu7tA0OPG509Z6wnnj7XOzoV7yDXgszeBhlaXnIGUR8eQrHbirBkWs7yGxNhbJbCoQUOhqzjGpLW3QgL3mIWWF8b5txvRNgUM2qE3JW0cpyeGSDiIdAqMcesFA6jPN4TxNcbD1xYDJgwRA+IAIUE1DzQ0l4aA5mqHmfEggJUSBUD4HivQn4MpxUyxR3JcmQ3yZ47xLk+CIrRASzWkKmqFKgGEJFMjHFLMgAAAxRbgNFXLGzayxe5csHQABU7RbbQHbC6sWLrHm6w/lMN5XLPnfMwi60algBn8SGbgGZcz17BOdcss06ybRbJ2UvfZ6pNTaifHkU5mQLnAWubc+5jtnaoMYZnb2Oc/aGNYIXcoxd7COEWvIOQ+yq5qBroneuLaA7qG7jDT5hztR0F7hKGoddm0p0gGaAA7CQFYtBq0CA7mgG0tAzrbrOkkHdKwkhnQYLQM0ZpXRmmNCQY0qg4h5AYAwM060k6NygDO3Ac6Mzd0XTqWg3dXbroA3TEg3c2AUFIN3dEogxKfOlmu/9ABvL8kAJ5IFsJA/G4k6D7UDrgKw4E84Ty4H0McJBcR4YnvcQkXhaDEYJmJWwtHBIMaYymAjiAADy0EYLpjILx+jAEBP4eArQGw8DwwE3FEQhG1YELiV47gdRjHmPycUxgTwuAfAabQ9p3TsmJ4GaU1GGCsYSxma03RuxenBOJIwGJOgxF+7YGkKp3jU8rM/1RZpsSBUHClMQLxgA2nhlMuGUxJfw6h8Sow0BsEC5GdJ9ntxObEhPWTyWWMSkYtFrgOm/NFaSxPRpP8FElkC/l+wYkYyZNSONJQNgVDjsAJgEyAEBEFgGAHwUhNZgpQMgMgaqPGFfizVqKShAslGcPxeGc3kuCeqPAfBg58vpcy1wazdmYxxjuclgAvtVxLm2J6pbEgdkggXjPqvuxt270sysWaq/NwTdXMAf2e4RcQJnlH8woKtQViAlIqRHEOAdiYVyBS8kKMB1quCOIFRq6luRaX2QAOTIG1QcyoNseanI4oWPlj4RWIFZXioCKVw6rQqD/PZb0vK8FPGXa1AEOiVhrHWeK3rui+qto+THcZ2waHe8VxbT2jsrf0lyWXNWaKtGSkQNsUnXPVa2zBXbXh9sZYV/hkHPhztJau/Nm7xX7uPaywTDIamiLRWUKQVXgnPtSm+2527/2GutEd6KnTa4mDQVmoBSAxobQ2g0LHgApJASmFJUAOGrd0LUDQkHb3VAAR2wEz9hQxETscm1uuPieZd6/w/L5bq2Vc14nttw3xvDtyad6H+G0X5sXbwwAXWC4aSjNhsvRgc0Ho7Z0BBnTiDelQJABA2iWBdOgZ073GjiHENAaBjQMGNLu2gSQBBmgENu40ZoSBoDNCsM6hVt0JDOnkbdX68h7+NLPhIJAkh5BWJf97E8IWI+L2puE8M+u6aASwtANo26D6NoKwNoRUDAKwW+KwxoSQF+6BDAAgCQHcSwAgKwR6HcKBaACQroDAP+Z0CQUBZBO+f+X6OBSwT2VmIMIeam40EepAxEfY+kg44oTovGtuZuVITynEcYsaQuuoXyVIPy+Aghv2ZuWEg49qFqJY5WLoTe5q1iBkAA6icMpmwVyOoQkL3nhn3n3rBgAghpQMhvdp8tBknC2p7AQN3BOJtCuk6B4VhvXAYNhoAcPo2IbLCLgAVBWhBuRuoONPArgLRjaBYU4V7K4Z7ABB4TQFBixPoEAA -->\n\n<!-- internal state end -->"},"request":{"retryCount":3,"retries":3,"retryAfter":16}},"response":{"url":"https://api.github.com/repos/openshift-hyperfleet/hyperfleet-api/issues/comments/3871837751","status":500,"headers":{"access-control-allow-origin":"*","access-control-expose-headers":"ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset","content-length":"0","content-security-policy":"default-src 'none'","content-type":"application/json; charset=utf-8","date":"Mon, 09 Feb 2026 16:15:21 GMT","referrer-policy":"origin-when-cross-origin, strict-origin-when-cross-origin","server":"github.com","strict-transport-security":"max-age=31536000; includeSubdomains; preload","vary":"Accept-Encoding, Accept, X-Requested-With","x-accepted-github-permissions":"issues=write; pull_requests=write","x-content-type-options":"nosniff","x-frame-options":"deny","x-github-api-version-selected":"2022-11-28","x-github-media-type":"github.v3; format=json","x-github-request-id":"386D:2AA02C:D8BE80:3A5F8DB:698A0818","x-ratelimit-limit":"15000","x-ratelimit-remaining":"14926","x-ratelimit-reset":"1770655955","x-ratelimit-resource":"core","x-ratelimit-used":"74","x-xss-protection":"0"},"data":""}}

3 similar comments
@coderabbitai
Copy link

coderabbitai bot commented Feb 9, 2026

Caution

Failed to replace (edit) comment. This is likely due to insufficient permissions or the comment being deleted.

Error details
{"name":"HttpError","status":500,"request":{"method":"PATCH","url":"https://api.github.com/repos/openshift-hyperfleet/hyperfleet-api/issues/comments/3871837751","headers":{"accept":"application/vnd.github.v3+json","user-agent":"octokit.js/0.0.0-development octokit-core.js/7.0.6 Node.js/24","authorization":"token [REDACTED]","content-type":"application/json; charset=utf-8"},"body":{"body":"<!-- This is an auto-generated comment: summarize by coderabbit.ai -->\n<!-- This is an auto-generated comment: review in progress by coderabbit.ai -->\n\n> [!NOTE]\n> Currently processing new changes in this PR. This may take a few minutes, please wait...\n> \n> \n> \n> \n> \n> <sub>✏️ Tip: You can disable in-progress messages and the fortune message in your review settings.</sub>\n\n<!-- end of auto-generated comment: review in progress by coderabbit.ai -->\n<!-- usage_tips_start -->\n\n> [!TIP]\n> <details>\n> <summary>You can make CodeRabbit's review stricter and more nitpicky using the `assertive` profile, if that's what you prefer.</summary>\n> \n> Change the `reviews.profile` setting to `assertive` to make CodeRabbit's nitpick more issues in your PRs.\n> \n> </details>\n\n<!-- usage_tips_end -->\n<!-- walkthrough_start -->\n\n## Walkthrough\n\nThese changes make two separate modifications: one adds a 30-second timeout context to the database session Close method's teardown operations to prevent hanging during cleanup, and the other adds a new test function that intentionally panics to verify Prow failure reporting behavior. Both changes are localized and do not alter core logic or error handling beyond their specific scopes.\n\n## Estimated code review effort\n\n🎯 1 (Trivial) | ⏱️ ~5 minutes\n\n<!-- walkthrough_end -->\n\n<!-- pre_merge_checks_walkthrough_start -->\n\n<details>\n<summary>🚥 Pre-merge checks | ✅ 3</summary>\n\n<details>\n<summary>✅ Passed checks (3 passed)</summary>\n\n|     Check name     | Status   | Explanation                                                                                                                                                                                                                           |\n| :----------------: | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n|  Description Check | ✅ Passed | Check skipped - CodeRabbit’s high-level summary is enabled.                                                                                                                                                                           |\n|     Title check    | ✅ Passed | The title clearly and specifically summarizes the main change: adding a test to verify Prow's failure reporting for integration test panics. It is directly related to the primary changeset (TestClusterPanicFailure test addition). |\n| Docstring Coverage | ✅ Passed | Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.                                                                                                                                                  |\n\n</details>\n\n<sub>✏️ Tip: You can configure your own custom pre-merge checks in the settings.</sub>\n\n</details>\n\n<!-- pre_merge_checks_walkthrough_end -->\n\n<!-- finishing_touch_checkbox_start -->\n\n<details>\n<summary>✨ Finishing touches</summary>\n\n- [ ] <!-- {\"checkboxId\": \"7962f53c-55bc-4827-bfbf-6a18da830691\"} --> 📝 Generate docstrings\n<details>\n<summary>🧪 Generate unit tests (beta)</summary>\n\n- [ ] <!-- {\"checkboxId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\", \"radioGroupId\": \"utg-output-choice-group-unknown_comment_id\"} -->   Create PR with unit tests\n- [ ] <!-- {\"checkboxId\": \"07f1e7d6-8a8e-4e23-9900-8731c2c87f58\", \"radioGroupId\": \"utg-output-choice-group-unknown_comment_id\"} -->   Post copyable unit tests in a comment\n\n</details>\n\n</details>\n\n<!-- finishing_touch_checkbox_end -->\n\n<!-- tips_start -->\n\n---\n\n\n\n<sub>Comment `@coderabbitai help` to get the list of available commands and usage tips.</sub>\n\n<!-- tips_end -->\n\n<!-- internal state start -->\n\n\n<!-- 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 -->\n\n<!-- internal state end -->"},"request":{"retryCount":3,"retries":3,"retryAfter":16}},"response":{"url":"https://api.github.com/repos/openshift-hyperfleet/hyperfleet-api/issues/comments/3871837751","status":500,"headers":{"access-control-allow-origin":"*","access-control-expose-headers":"ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset","content-length":"0","content-security-policy":"default-src 'none'","content-type":"application/json; charset=utf-8","date":"Mon, 09 Feb 2026 16:15:21 GMT","referrer-policy":"origin-when-cross-origin, strict-origin-when-cross-origin","server":"github.com","strict-transport-security":"max-age=31536000; includeSubdomains; preload","vary":"Accept-Encoding, Accept, X-Requested-With","x-accepted-github-permissions":"issues=write; pull_requests=write","x-content-type-options":"nosniff","x-frame-options":"deny","x-github-api-version-selected":"2022-11-28","x-github-media-type":"github.v3; format=json","x-github-request-id":"386D:2AA02C:D8BE80:3A5F8DB:698A0818","x-ratelimit-limit":"15000","x-ratelimit-remaining":"14926","x-ratelimit-reset":"1770655955","x-ratelimit-resource":"core","x-ratelimit-used":"74","x-xss-protection":"0"},"data":""}}

@coderabbitai
Copy link

coderabbitai bot commented Feb 9, 2026

Caution

Failed to replace (edit) comment. This is likely due to insufficient permissions or the comment being deleted.

Error details
{"name":"HttpError","status":500,"request":{"method":"PATCH","url":"https://api.github.com/repos/openshift-hyperfleet/hyperfleet-api/issues/comments/3871837751","headers":{"accept":"application/vnd.github.v3+json","user-agent":"octokit.js/0.0.0-development octokit-core.js/7.0.6 Node.js/24","authorization":"token [REDACTED]","content-type":"application/json; charset=utf-8"},"body":{"body":"<!-- This is an auto-generated comment: summarize by coderabbit.ai -->\n<!-- This is an auto-generated comment: review in progress by coderabbit.ai -->\n\n> [!NOTE]\n> Currently processing new changes in this PR. This may take a few minutes, please wait...\n> \n> \n> \n> \n> \n> <sub>✏️ Tip: You can disable in-progress messages and the fortune message in your review settings.</sub>\n\n<!-- end of auto-generated comment: review in progress by coderabbit.ai -->\n<!-- usage_tips_start -->\n\n> [!TIP]\n> <details>\n> <summary>You can make CodeRabbit's review stricter and more nitpicky using the `assertive` profile, if that's what you prefer.</summary>\n> \n> Change the `reviews.profile` setting to `assertive` to make CodeRabbit's nitpick more issues in your PRs.\n> \n> </details>\n\n<!-- usage_tips_end -->\n<!-- walkthrough_start -->\n\n## Walkthrough\n\nThese changes make two separate modifications: one adds a 30-second timeout context to the database session Close method's teardown operations to prevent hanging during cleanup, and the other adds a new test function that intentionally panics to verify Prow failure reporting behavior. Both changes are localized and do not alter core logic or error handling beyond their specific scopes.\n\n## Estimated code review effort\n\n🎯 1 (Trivial) | ⏱️ ~5 minutes\n\n<!-- walkthrough_end -->\n\n<!-- pre_merge_checks_walkthrough_start -->\n\n<details>\n<summary>🚥 Pre-merge checks | ✅ 3</summary>\n\n<details>\n<summary>✅ Passed checks (3 passed)</summary>\n\n|     Check name     | Status   | Explanation                                                                                                                                                                                                                           |\n| :----------------: | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n|  Description Check | ✅ Passed | Check skipped - CodeRabbit’s high-level summary is enabled.                                                                                                                                                                           |\n|     Title check    | ✅ Passed | The title clearly and specifically summarizes the main change: adding a test to verify Prow's failure reporting for integration test panics. It is directly related to the primary changeset (TestClusterPanicFailure test addition). |\n| Docstring Coverage | ✅ Passed | Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.                                                                                                                                                  |\n\n</details>\n\n<sub>✏️ Tip: You can configure your own custom pre-merge checks in the settings.</sub>\n\n</details>\n\n<!-- pre_merge_checks_walkthrough_end -->\n\n<!-- finishing_touch_checkbox_start -->\n\n<details>\n<summary>✨ Finishing touches</summary>\n\n- [ ] <!-- {\"checkboxId\": \"7962f53c-55bc-4827-bfbf-6a18da830691\"} --> 📝 Generate docstrings\n<details>\n<summary>🧪 Generate unit tests (beta)</summary>\n\n- [ ] <!-- {\"checkboxId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\", \"radioGroupId\": \"utg-output-choice-group-unknown_comment_id\"} -->   Create PR with unit tests\n- [ ] <!-- {\"checkboxId\": \"07f1e7d6-8a8e-4e23-9900-8731c2c87f58\", \"radioGroupId\": \"utg-output-choice-group-unknown_comment_id\"} -->   Post copyable unit tests in a comment\n\n</details>\n\n</details>\n\n<!-- finishing_touch_checkbox_end -->\n\n<!-- tips_start -->\n\n---\n\n\n\n<sub>Comment `@coderabbitai help` to get the list of available commands and usage tips.</sub>\n\n<!-- tips_end -->\n\n<!-- internal state start -->\n\n\n<!-- DwQgtGAEAqAWCWBnSTIEMB26CuAXA9mAOYCmGJATmriQCaQDG+Ats2bgFyQAOFk+AIwBWJBrngA3EsgEBPRvlqU0AgfFwA6NPEgQAfACgjoCEYDEZyAAUASpETZWaCrI4Go0dQBsSXABIAmlYAojYAYgAywcHQYABsAEwArLqQNIickABqlPAAZvJWFPgA7pAUJNz4FLjI8Bg0RFTi+FjpuDyY8AyQedpe2BWI7pAAco4ClAD0AKo2EVxmACwAnJCAKASQsLi43IgcU1NE6rDYAhpMzFP43GSICHm4YLCytxR5PiS4Uy9vHyRfMBobjwKbcbBeLxTVYjACCeFg1SmAioGAYsC4VD6k3IABp7PhBgwSJAUZh0WlpN96o1mvBWmA+vABhUwBUqjV6kRdHo0s5SB1mNoMCMAMq4ajYRBTNgS2jUNBcG5kADc5RIEngJBKlH2kFkaAcGAAjPiAByJJJLC0ABjVDAq1DokASNoScTAbs9K2gxoSHCtHBtZoAWiMACLSB3wbgtLAOJwuNyQVKw2i0ZBoSnMDnOeQ0khNaj0tpUyAACmgVIAwgMMpQrF0GGF+oMSABKNKwagoBrsEtoSHyBiDrzIbhN8udtCPSi99TwQfwABeXK7JILRbjlIyWxIXjeaXw9ngzAhTvQjCo90gtEGa/akBIAA9RHgSxoDCmoFZBlVEBuyC0IuRAYPgGTdFwUgUPk8glLAXwIXwRSlBWmpZkQ+DtAm6AYPQuAIZA1YAJKQEIgidkwFAVGIXjDsCuBtpmeHqhytS9rSxatDuHQThg3S9K2QykmgDAANZHpAADi6h+GcGz2LcDD5N0o7yARPaYdhjjqoxFAYJmkBgRgYDLpQx4vuoChKLh9AoWU7LVOxBEkkyLIktxLnWDYn7fmMWHSF2PZeY+Z67pM6rMPgUj0DONB8EwGB5PAFDMGu9mkiQ3aatUvmpDYJB5JQZDEsgABSKWKlsOx7AcUxIA40gaBUtDdpolzIsUJQAVMgQhOEUQxPEyTmJY1YsGlgrSIgaCkMgCZCi4FatHRKB5JAUqFRC7ZuFA42sFZxpcGmGaXgAzDaYAAYl+GniQhIdIlNDPh0BAwFST3CpQGi1uBJBThWNDOLQpQYJ2b1oBI+DwPQ3YYEQyDwcVCgNF9FAaFWqX1E6AMCF4+DiZms58FmfHdPi8HdLAjCYDwFRSA0650wT029MUzBPs+C7w7ZkA+JDJJeRl5ECL2l63Hha4ZE6n57RNVn+pAJ3IF5BYNAOXidPxPSbnSnllpt+HHtBsHWF1gnMm2rFOVyn7uGAhgGCYUBkPQ+DrWgeCEKQ5DNM6lxsA0XC8PwwiiOIUgyMOijKKo6haDo+hO+AHgIHUzE4AQxBkMoND0AH7CYmgZQLXmpLR0oVBx5o2i6A7RjJ6YBjcGJRBTLQAjtwIAD6AGIIgJZTO0n31N9mFuAARFPBgWErxHZ77Tr0KXS3u4wcNzUYcAkr9AGQLKiL0GBZSbYZF1XaIrS3WwD0o89HR5NUlLA6D/BvFxBn4uyXiiQ+hG8BqekUoeA/3qHfF8mgABColW7FGwHhKcGgYBpyfAZJilIsYYA/rzfGRBjg8zvDBHmQMKAgxKFgEcbQ7r8DwL2esaA3brQ3lyfEmB8KEUshBHmyo9YGQrAwfGA9iGEVFAARQiCjcgYgSy83imlLB4hhEkhHr7TsFB4EbTwnOAiqABCEi0fnVo98kGwhpmifcvR4HSO4qgQciBjwMKULFFiSgirUToEg0Yx4sJIT5vgY4PR0SYDmpJJ6xRNYfFQk/SgxQ+Bw1oF4NckxZBXyZogJgtxr73VoZMbK9J0YNxnpYWEXh4ofxVseLySgBHOHKfwdaL42LOifuCPGAl+ziGkEYKAo1IAAFkuhFV3GEZkJJYRYLomZCgRgIij2QEE+GdAuAAGokhTDAMaIwwQIJCjztZEk9MtRlEKo/GoXA+l0HgI4AwU8J7dKbu0eqfYtyDwEVKeKiBu7tA0OPG509Z6wnnj7XOzoV7yDXgszeBhlaXnIGUR8eQrHbirBkWs7yGxNhbJbCoQUOhqzjGpLW3QgL3mIWWF8b5txvRNgUM2qE3JW0cpyeGSDiIdAqMcesFA6jPN4TxNcbD1xYDJgwRA+IAIUE1DzQ0l4aA5mqHmfEggJUSBUD4HivQn4MpxUyxR3JcmQ3yZ47xLk+CIrRASzWkKmqFKgGEJFMjHFLMgAAAxRbgNFXLGzayxe5csHQABU7RbbQHbC6sWLrHm6w/lMN5XLPnfMwi60algBn8SGbgGZcz17BOdcss06ybRbJ2UvfZ6pNTaifHkU5mQLnAWubc+5jtnaoMYZnb2Oc/aGNYIXcoxd7COEWvIOQ+yq5qBroneuLaA7qG7jDT5hztR0F7hKGoddm0p0gGaAA7CQFYtBq0CA7mgG0tAzrbrOkkHdKwkhnQYLQM0ZpXRmmNCQY0qg4h5AYAwM060k6NygDO3Ac6Mzd0XTqWg3dXbroA3TEg3c2AUFIN3dEogxKfOlmu/9ABvL8kAJ5IFsJA/G4k6D7UDrgKw4E84Ty4H0McJBcR4YnvcQkXhaDEYJmJWwtHBIMaYymAjiAADy0EYLpjILx+jAEBP4eArQGw8DwwE3FEQhG1YELiV47gdRjHmPycUxgTwuAfAabQ9p3TsmJ4GaU1GGCsYSxma03RuxenBOJIwGJOgxF+7YGkKp3jU8rM/1RZpsSBUHClMQLxgA2nhlMuGUxJfw6h8Sow0BsEC5GdJ9ntxObEhPWTyWWMSkYtFrgOm/NFaSxPRpP8FElkC/l+wYkYyZNSONJQNgVDjsAJgEyAEBEFgGAHwUhNZgpQMgMgaqPGFfizVqKShAslGcPxeGc3kuCeqPAfBg58vpcy1wazdmYxxjuclgAvtVxLm2J6pbEgdkggXjPqvuxt270sysWaq/NwTdXMAf2e4RcQJnlH8woKtQViAlIqRHEOAdiYVyBS8kKMB1quCOIFRq6luRaX2QAOTIG1QcyoNseanI4oWPlj4RWIFZXioCKVw6rQqD/PZb0vK8FPGXa1AEOiVhrHWeK3rui+qto+THcZ2waHe8VxbT2jsrf0lyWXNWaKtGSkQNsUnXPVa2zBXbXh9sZYV/hkHPhztJau/Nm7xX7uPaywTDIamiLRWUKQVXgnPtSm+2527/2GutEd6KnTa4mDQVmoBSAxobQ2g0LHgApJASmFJUAOGrd0LUDQkHb3VAAR2wEz9hQxETscm1uuPieZd6/w/L5bq2Vc14nttw3xvDtyad6H+G0X5sXbwwAXWC4aSjNhsvRgc0Ho7Z0BBnTiDelQJABA2iWBdOgZ073GjiHENAaBjQMGNLu2gSQBBmgENu40ZoSBoDNCsM6hVt0JDOnkbdX68h7+NLPhIJAkh5BWJf97E8IWI+L2puE8M+u6aASwtANo26D6NoKwNoRUDAKwW+KwxoSQF+6BDAAgCQHcSwAgKwR6HcKBaACQroDAP+Z0CQUBZBO+f+X6OBSwT2VmIMIeam40EepAxEfY+kg44oTovGtuZuVITynEcYsaQuuoXyVIPy+Aghv2ZuWEg49qFqJY5WLoTe5q1iBkAA6icMpmwVyOoQkL3nhn3n3rBgAghpQMhvdp8tBknC2p7AQN3BOJtCuk6B4VhvXAYNhoAcPo2IbLCLgAVBWhBuRuoONPArgLRjaBYU4V7K4Z7ABB4TQFBixPoEAA -->\n\n<!-- internal state end -->"},"request":{"retryCount":3,"retries":3,"retryAfter":16}},"response":{"url":"https://api.github.com/repos/openshift-hyperfleet/hyperfleet-api/issues/comments/3871837751","status":500,"headers":{"access-control-allow-origin":"*","access-control-expose-headers":"ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset","content-length":"0","content-security-policy":"default-src 'none'","content-type":"application/json; charset=utf-8","date":"Mon, 09 Feb 2026 16:15:21 GMT","referrer-policy":"origin-when-cross-origin, strict-origin-when-cross-origin","server":"github.com","strict-transport-security":"max-age=31536000; includeSubdomains; preload","vary":"Accept-Encoding, Accept, X-Requested-With","x-accepted-github-permissions":"issues=write; pull_requests=write","x-content-type-options":"nosniff","x-frame-options":"deny","x-github-api-version-selected":"2022-11-28","x-github-media-type":"github.v3; format=json","x-github-request-id":"386D:2AA02C:D8BE80:3A5F8DB:698A0818","x-ratelimit-limit":"15000","x-ratelimit-remaining":"14926","x-ratelimit-reset":"1770655955","x-ratelimit-resource":"core","x-ratelimit-used":"74","x-xss-protection":"0"},"data":""}}

@coderabbitai
Copy link

coderabbitai bot commented Feb 9, 2026

Caution

Failed to replace (edit) comment. This is likely due to insufficient permissions or the comment being deleted.

Error details
{"name":"HttpError","status":500,"request":{"method":"PATCH","url":"https://api.github.com/repos/openshift-hyperfleet/hyperfleet-api/issues/comments/3871837751","headers":{"accept":"application/vnd.github.v3+json","user-agent":"octokit.js/0.0.0-development octokit-core.js/7.0.6 Node.js/24","authorization":"token [REDACTED]","content-type":"application/json; charset=utf-8"},"body":{"body":"<!-- This is an auto-generated comment: summarize by coderabbit.ai -->\n<!-- This is an auto-generated comment: review in progress by coderabbit.ai -->\n\n> [!NOTE]\n> Currently processing new changes in this PR. This may take a few minutes, please wait...\n> \n> \n> \n> \n> \n> <sub>✏️ Tip: You can disable in-progress messages and the fortune message in your review settings.</sub>\n\n<!-- end of auto-generated comment: review in progress by coderabbit.ai -->\n<!-- usage_tips_start -->\n\n> [!TIP]\n> <details>\n> <summary>You can make CodeRabbit's review stricter and more nitpicky using the `assertive` profile, if that's what you prefer.</summary>\n> \n> Change the `reviews.profile` setting to `assertive` to make CodeRabbit's nitpick more issues in your PRs.\n> \n> </details>\n\n<!-- usage_tips_end -->\n<!-- walkthrough_start -->\n\n## Walkthrough\n\nThese changes make two separate modifications: one adds a 30-second timeout context to the database session Close method's teardown operations to prevent hanging during cleanup, and the other adds a new test function that intentionally panics to verify Prow failure reporting behavior. Both changes are localized and do not alter core logic or error handling beyond their specific scopes.\n\n## Estimated code review effort\n\n🎯 1 (Trivial) | ⏱️ ~5 minutes\n\n<!-- walkthrough_end -->\n\n<!-- pre_merge_checks_walkthrough_start -->\n\n<details>\n<summary>🚥 Pre-merge checks | ✅ 3</summary>\n\n<details>\n<summary>✅ Passed checks (3 passed)</summary>\n\n|     Check name     | Status   | Explanation                                                                                                                                                                                                                           |\n| :----------------: | :------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n|  Description Check | ✅ Passed | Check skipped - CodeRabbit’s high-level summary is enabled.                                                                                                                                                                           |\n|     Title check    | ✅ Passed | The title clearly and specifically summarizes the main change: adding a test to verify Prow's failure reporting for integration test panics. It is directly related to the primary changeset (TestClusterPanicFailure test addition). |\n| Docstring Coverage | ✅ Passed | Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.                                                                                                                                                  |\n\n</details>\n\n<sub>✏️ Tip: You can configure your own custom pre-merge checks in the settings.</sub>\n\n</details>\n\n<!-- pre_merge_checks_walkthrough_end -->\n\n<!-- finishing_touch_checkbox_start -->\n\n<details>\n<summary>✨ Finishing touches</summary>\n\n- [ ] <!-- {\"checkboxId\": \"7962f53c-55bc-4827-bfbf-6a18da830691\"} --> 📝 Generate docstrings\n<details>\n<summary>🧪 Generate unit tests (beta)</summary>\n\n- [ ] <!-- {\"checkboxId\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\", \"radioGroupId\": \"utg-output-choice-group-unknown_comment_id\"} -->   Create PR with unit tests\n- [ ] <!-- {\"checkboxId\": \"07f1e7d6-8a8e-4e23-9900-8731c2c87f58\", \"radioGroupId\": \"utg-output-choice-group-unknown_comment_id\"} -->   Post copyable unit tests in a comment\n\n</details>\n\n</details>\n\n<!-- finishing_touch_checkbox_end -->\n\n<!-- tips_start -->\n\n---\n\n\n\n<sub>Comment `@coderabbitai help` to get the list of available commands and usage tips.</sub>\n\n<!-- tips_end -->\n\n<!-- internal state start -->\n\n\n<!-- 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 -->\n\n<!-- internal state end -->"},"request":{"retryCount":3,"retries":3,"retryAfter":16}},"response":{"url":"https://api.github.com/repos/openshift-hyperfleet/hyperfleet-api/issues/comments/3871837751","status":500,"headers":{"access-control-allow-origin":"*","access-control-expose-headers":"ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Used, X-RateLimit-Resource, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, X-GitHub-SSO, X-GitHub-Request-Id, Deprecation, Sunset","content-length":"0","content-security-policy":"default-src 'none'","content-type":"application/json; charset=utf-8","date":"Mon, 09 Feb 2026 16:15:21 GMT","referrer-policy":"origin-when-cross-origin, strict-origin-when-cross-origin","server":"github.com","strict-transport-security":"max-age=31536000; includeSubdomains; preload","vary":"Accept-Encoding, Accept, X-Requested-With","x-accepted-github-permissions":"issues=write; pull_requests=write","x-content-type-options":"nosniff","x-frame-options":"deny","x-github-api-version-selected":"2022-11-28","x-github-media-type":"github.v3; format=json","x-github-request-id":"386D:2AA02C:D8BE80:3A5F8DB:698A0818","x-ratelimit-limit":"15000","x-ratelimit-remaining":"14926","x-ratelimit-reset":"1770655955","x-ratelimit-resource":"core","x-ratelimit-used":"74","x-xss-protection":"0"},"data":""}}

@rafabene rafabene force-pushed the test/integration-failure-reporting branch from 2f60556 to 80ddf99 Compare February 9, 2026 16:45
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In `@test/integration/clusters_test.go`:
- Around line 782-788: The TestClusterPanicFailure test currently always panics;
change it to only panic when an opt‑in environment flag is set (e.g.,
ENABLE_PANIC_TEST) so it doesn't break CI by default: in
TestClusterPanicFailure, after calling test.RegisterIntegration(t) check the env
var (or use t.Skip unless enabled) and only call panic("intentional panic...")
when the flag is present; keep the rest of the test intact so the diagnostic
remains opt‑in.

In `@test/integration/integration_test.go`:
- Around line 61-70: The watchdog goroutine currently calls os.Exit(exitCode)
which may be zero if tests passed, masking a teardown timeout; update the
anonymous goroutine so it forces a non‑zero exit: if exitCode == 0 { exitCode =
1 } (or call os.Exit(1) directly) before invoking os.Exit, referring to the
existing variables and calls (the anonymous goroutine, logger.Error, and
os.Exit(exitCode)) so a teardown timeout always returns failure.

@rafabene rafabene force-pushed the test/integration-failure-reporting branch 4 times, most recently from f4e22eb to b314309 Compare February 9, 2026 17:56
…t Prow hang

When integration tests fail with a panic, the process continues to the
teardown phase where container.Terminate() is called with no timeout.
If the Docker container termination hangs, the process never exits,
causing the Prow CI job to stay stuck in "pending" state indefinitely.

Add a 30-second timeout context to Testcontainer.Close() so the teardown
always completes, allowing the process to exit and Prow to report the
test failure status back to GitHub.
@rafabene rafabene force-pushed the test/integration-failure-reporting branch from b314309 to b1f3fa6 Compare February 9, 2026 18:16
@rafabene rafabene force-pushed the test/integration-failure-reporting branch from b1f3fa6 to d61a694 Compare February 9, 2026 18:46
@openshift-ci
Copy link

openshift-ci bot commented Feb 10, 2026

@rafabene: The following test 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/presubmits-integration d61a694 link true /test presubmits-integration

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

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant