Skip to content

Rhdhbugs 3725 bump better sqlite3 1.10 - #5364

Closed
NiallTwomey2 wants to merge 114 commits into
redhat-developer:mainfrom
NiallTwomey2:RHDHBUGS-3725-bump-better-sqlite3-1.10
Closed

NiallTwomey2 wants to merge 114 commits into
redhat-developer:mainfrom
NiallTwomey2:RHDHBUGS-3725-bump-better-sqlite3-1.10

Conversation

@NiallTwomey2

@NiallTwomey2 NiallTwomey2 commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Bump better-sqlite3 from version 12.x to 13.0.3

Description

Backport of #5359 to release-1.10.
Node 24.19 aborts in better-sqlite3 version 12.x during Statement teardown (RemoveEnvironmentCleanupHook).
However, better-sqlite3 13.x uses N-API (node-addon-api) instead of Node's internal node::ObjectWrap, which is why it does not hit the - RemoveEnvironmentCleanupHook / (env) != nullptr error on Node 24.19.

This unblocks community :next-1.10 after rebuild. Released 1.10.4 is not rewritten; that needs a later 1.10.z tag.

Which issue(s) does this PR fix

PR acceptance criteria

  • rhdh CI checks are passed
  • Local yarn start on Node 24 stays up (Listening on :7007, no sqlite native abort)

rhdh-bot and others added 30 commits May 14, 2026 15:15
Signed-off-by: RHDH Build (rhdh-bot) <rhdh-bot@redhat.com>
Signed-off-by: RHDH Build (rhdh-bot) <rhdh-bot@redhat.com>
…/nodejs-24:9.7-1777855644 [skip-build] [skip-e2e] (redhat-developer#4831)

* chore: update release-1.10 to ubi9/nodejs-24:9.7-1778648315 from ubi9/nodejs-24:9.7-1777855644 [skip-build] [skip-e2e]

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>

* chore: update release-1.10 to ubi9/nodejs-24-minimal:9.7-1778604972 from ubi9/nodejs-24-minimal:9.7-1777884007 [skip-build] [skip-e2e]

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>

---------

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>
…eveloper#4845)

Sync locale files for RHDH app, Backstage core, community plugins,
and add rhdh-plugins translation resources.

Co-authored-by: Lokananda Prabhu <lprabhu@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
* chore(deps): bump plugins for 1.10

Signed-off-by: Patrick Knight <pknight@redhat.com>

* chore(e2e): test bulk import wrapper update

Signed-off-by: Patrick Knight <pknight@redhat.com>
Co-authored-by: its-mitesh-kumar <itsmiteshkumar98@gmail.com>
Co-authored-by: sanketpathak <spathak@redhat.com>

* chore(deps): more plugin bumps

Signed-off-by: Patrick Knight <pknight@redhat.com>

* chore(deps): properly bump adoption insights

Signed-off-by: Patrick Knight <pknight@redhat.com>

* fix(deps): add missing better-sqlite3 dependency

Signed-off-by: Patrick Knight <pknight@redhat.com>

* chore(deps): bump quickstart plugin to 1.9.6

Signed-off-by: Jon Koops <jonkoops@gmail.com>

---------

Signed-off-by: Patrick Knight <pknight@redhat.com>
Signed-off-by: Jon Koops <jonkoops@gmail.com>
Co-authored-by: its-mitesh-kumar <itsmiteshkumar98@gmail.com>
Co-authored-by: sanketpathak <spathak@redhat.com>
Co-authored-by: Jon Koops <jonkoops@gmail.com>
…son (redhat-developer#4849)

Align user-settings-fr.ts with backstage-fr.json entries. Retain French
translations for pinToggle title, pin switch, and aria label where the
JSON still has untranslated English.

Co-authored-by: Lokananda Prabhu <lprabhu@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Karthik <karthik.jk11@gmail.com>
…hat-developer#4851)

PR redhat-developer#4795 removed the global-floating-action-button and global-header
ConfigMap templates and creation logic but left stale references in the
operator Backstage CR files (rhdh-start.yaml and rhdh-start_K8s.yaml).

This caused all operator-based CI deployments to fail with:
  ConfigMap "dynamic-global-floating-action-button-config" not found

Remove the two stale ConfigMap references from both operator CR files.

Assisted-by: OpenCode

Co-authored-by: Zbyněk Drápela <zbynek.drapela@gmail.com>
…at-developer#4847)

Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: openshift-merge-bot[bot] <148852131+openshift-merge-bot[bot]@users.noreply.github.com>
Co-authored-by: Andre Lizardo <alizardo@redhat.com>
* chore(CI): unpin chart version

* remove duplicate lightspeed config
…/nodejs-24:9.7-1778648315 [skip-build] [skip-e2e] (redhat-developer#4880)

* chore: update release-1.10 to ubi9/nodejs-24:9.8-1779701300 from ubi9/nodejs-24:9.7-1778648315 [skip-build] [skip-e2e]

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>

* chore: update release-1.10 to ubi9/nodejs-24-minimal:9.8-1779719601 from ubi9/nodejs-24-minimal:9.7-1778604972 [skip-build] [skip-e2e]

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>

---------

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>
… jobs [release-1.10] (redhat-developer#4884)

* docs(ci): clarify operator runtime test deployment method

Signed-off-by: Fortune-Ndlovu <fortune.ndlovu2@gmail.com>

* feat(e2e): enable pluginDivisionMode schema tests for OCP Operator nightly

Enable pluginDivisionMode: schema E2E tests for OCP Operator deployments.
The tests previously skipped because schema-mode-setup.ts patched the
operator-managed Deployment spec to inject POSTGRES_* env vars, which the
operator reconciliation loop reverted — crashing the init container.

Fix: for operator deployments, update the existing postgres-cred secret
(already mounted via extraEnvs.secrets in the Backstage CR) instead of
creating a new secret and patching the Deployment. Skip
ensureDeploymentEnvVars() entirely for operator since env vars are
injected by the operator from the secret automatically.

CI pipeline changes:
- Wire up real Crunchy PostgreSQL via configure_external_postgres_db
- Configure SCHEMA_MODE_* env vars via configure_schema_mode_runtime_env
- Export INSTALL_METHOD=operator for correct deployment naming
- Fall back to placeholder secrets if Crunchy setup fails

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(ci): create dynamic-plugins ConfigMap for showcase-runtime operator deployment

The Backstage CR references dynamicPluginsConfigMapName: dynamic-plugins
but the ConfigMap was never created in the showcase-runtime namespace,
causing the operator reconciler to fail.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(ci): use minimal dynamic-plugins config for showcase-runtime operator

Use values-showcase-postgres.yaml (plugins: []) instead of the full
values_showcase.yaml to avoid the install-dynamic-plugins init container
hanging while downloading dozens of plugins. The runtime namespace only
needs default bundled plugins for schema-mode testing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(e2e): retry deployment restart for schema-mode on slow PVC creation

The ephemeral volume controller can be slow to create PVCs on CI
clusters, causing the deployment restart to fail on the first attempt.
Add retry logic (up to 3 attempts with 30s delay) and increase the
beforeAll timeout to 15 minutes to accommodate retries.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(e2e): treat ephemeral volume PVC scheduling as transient in pod failure check

checkPodFailureStates() was treating all PodScheduled:False conditions as
immediate hard failures, bypassing the 10-minute timeout in
waitForDeploymentReady(). When the ephemeral volume controller is still
creating the PVC for dynamic-plugins-root, this is a transient state that
resolves on its own. Now logs a warning and continues polling instead.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* feat(ci): set INSTALL_METHOD to operator in ocp-operator.sh

This change establishes the INSTALL_METHOD environment variable as 'operator' for the deployment process. Additionally, it updates the base64 encoding method for the runtime URL in the operator runtime config change tests, ensuring compatibility with the common encoding function.

---------

Signed-off-by: Fortune-Ndlovu <fortune.ndlovu2@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…ejs-24:9.8-1779701300 [skip-build] [skip-e2e] (redhat-developer#4916)

* chore: update release-1.10 to ubi9/nodejs-24:1780432632 from ubi9/nodejs-24:9.8-1779701300 [skip-build] [skip-e2e]

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>

* chore: update release-1.10 to ubi9/nodejs-24-minimal:1779831333 from ubi9/nodejs-24-minimal:9.8-1779719601 [skip-build] [skip-e2e]

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>

---------

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>
…branch + remove trigger-nightly-job command (redhat-developer#4910)

* fix(ci): dynamically resolve catalog index image from branch

Replace hardcoded quay.io/rhdh/plugin-catalog-index:1.10 with a single
branch-aware CATALOG_INDEX_IMAGE variable derived from RELEASE_BRANCH_NAME.

Add RELEASE_VERSION canonical variable (release-1.10 → 1.10,
main → next) to env_variables.sh for reuse across CI scripts.

Changes:
- env_variables.sh: Add RELEASE_VERSION + CATALOG_INDEX_IMAGE variable
- 5 operator Backstage CRs: Use $CATALOG_INDEX_IMAGE via envsubst
- lib/helm.sh: Parse CATALOG_INDEX_IMAGE into registry/repository/tag
  for --set global.catalogIndex.image.{registry,repository,tag}
- operator.sh: Simplify version derivation using RELEASE_VERSION
- trigger-nightly-job.sh: Add --catalog-index-image and --chart-version
  Gangway override flags for RC/GA verification

Companion PR required in openshift/release to add
MULTISTAGE_PARAM_OVERRIDE_CATALOG_INDEX_IMAGE env var to step registry
ref.yaml + commands.sh files. The rhdh changes include fallback defaults
so order of merge does not matter.

Assisted-by: Claude Code

* chore: replace trigger-nightly-job command with install guide

Replace the full trigger-nightly-job agent command with a stub that
points users to the installable skill at
redhat-developer/rhdh-skills/skills/prow-trigger-nightly.

The underlying script (.ci/pipelines/trigger-nightly-job.sh) remains
in this repository.

Assisted-by: Claude Code

* chore(ci): dynamically inject CATALOG_INDEX_IMAGE for operator and helm deployments

- Only inject CATALOG_INDEX_IMAGE in Helm chart and Operator when specified
- Use yq to dynamically inject env var into Backstage CRs rather than relying on sed
- Removed hardcoded CATALOG_INDEX_IMAGE from yaml templates

Assisted-by: OpenCode

* chore: retrigger CI
…#4925)

The Slack alert was reporting "0 tests failed" even when tests actually
failed. The root cause is that the JUnit XML spec distinguishes
"failures" (assertion failures) from "errors" (exceptions/timeouts).
Playwright reports TimeoutError and similar issues as `errors`, not
`failures`. The old code only parsed the `failures` attribute, so any
test that failed due to a timeout or exception was silently uncounted.

Fix by summing both `failures` and `errors` from the root <testsuites>
element. Also add a safety net: if Playwright exits non-zero but the
JUnit XML somehow reports 0 failures and 0 errors, report "some" instead
of the misleading "0".

Verified against build 2061711989599637504 where showcase had
failures="0" errors="4" and showcase-runtime had failures="0" errors="8"
— both incorrectly reported as "0 tests failed" on Slack.

Requested-By: <@U05QPKB8VB3> (gliraesi)

Co-authored-by: qe-ci-ai-bot <qe-ci-ai-bot@redhat.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
…ejs-24:1780432632 [skip-build] [skip-e2e] (redhat-developer#4927)

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>
…d improve logging [/fix-e2e] (redhat-developer#4924)

* fix(e2e): fix showcase-runtime init container crash and improve logging

The install-dynamic-plugins init container in the showcase-runtime
deployment was crashing with exit code 1 because:

1. The RHDH 1.10 chart enables lightspeed by default, injecting plugins
   with {{inherit}} version syntax that requires dynamic-plugins.default.yaml
2. The custom initContainers override in values-showcase-postgres.yaml
   lacked CATALOG_INDEX_IMAGE env var needed to extract this file from
   the catalog index OCI image
3. Without the catalog index extraction, {{inherit}} cannot resolve,
   causing InstallException

Fix:
- Remove the stale custom initContainers override, letting the chart
  use its default which has all required env vars and volume mounts
- Add missing extensions-catalog and temp emptyDir volumes needed by
  the chart's default init container and main container

Also fix kube-client.ts to capture init container logs on failure:
- Extract the failing container name from the error message instead
  of hardcoding backstage-backend
- Include initContainers in the fallback container list when no
  specific container is requested

Assisted-by: OpenCode

* fix: increase test timeout for external DB restart tests to 10min

The chart's default install-dynamic-plugins init container pulls the
catalog index image and extracts dynamic-plugins.default.yaml, which
takes ~5-6 minutes in CI. The previous 270s (4.5min) test timeout was
insufficient, causing all 'Configure and restart deployment' tests to
fail with timeout errors.

Increase test.setTimeout from 270000ms (4.5min) to 600000ms (10min)
to match the waitForDeploymentReady timeout in restartDeployment().

Assisted-by: OpenCode

* refactor(e2e): return structured PodFailureResult instead of regex parsing

Replace fragile regex extraction of container names from error strings
with a structured PodFailureResult interface. checkPodFailureStates()
now returns { message, containerName? } instead of a plain string,
eliminating the risk of false-positive regex matches on freeform
Kubernetes error messages embedded in pod condition text.

Assisted-by: OpenCode

* ci: retrigger checks

Assisted-by: OpenCode
…ejs-24:1780608236 [skip-build] [skip-e2e] (redhat-developer#4934)

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>
…] [release-1.10] (redhat-developer#4932)

* chore: remove default.packages.yaml; moved to overlays repo as of 1.11/2.1 (RHDHBUGS-3190)

Signed-off-by: Nick Boldt <nboldt@redhat.com>

* docs: update source of DPDY file

---------

Signed-off-by: Nick Boldt <nboldt@redhat.com>
Co-authored-by: Frank Kong <50030060+Zaperex@users.noreply.github.com>
…ld] [skip-e2e] (redhat-developer#4938)

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>
…ld] [skip-e2e] (redhat-developer#4943)

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>
…ubi9/nodejs-24-minimal:1779831333 [skip-build] [skip-e2e] (redhat-developer#4953)

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>
…/nodejs-24:1781010361 [skip-build] [skip-e2e] (redhat-developer#4969)

* chore: update release-1.10 to ubi9/nodejs-24:9.8-1781731595 from ubi9/nodejs-24:1781010361 [skip-build] [skip-e2e]

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>

* chore: update release-1.10 to ubi9/nodejs-24-minimal:9.8-1781562052 from ubi9/nodejs-24-minimal:1781562225 [skip-build] [skip-e2e]

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>

---------

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>
Omar-AlJaljuli and others added 23 commits August 10, 2026 20:46
…/nodejs-24:9.8-1786338094 [skip-build] [skip-e2e] (redhat-developer#5247)

* chore: update release-1.10 to ubi9/nodejs-24:9.8-1786496588 from ubi9/nodejs-24:9.8-1786338094 [skip-build] [skip-e2e]

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>

* chore: update release-1.10 to ubi9/nodejs-24-minimal:9.8-1786411410 from ubi9/nodejs-24-minimal:9.8-1785948813 [skip-build] [skip-e2e]

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>

---------

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>
…/nodejs-24:9.8-1786496588 [skip-build] [skip-e2e] (redhat-developer#5280)

* chore: update release-1.10 to ubi9/nodejs-24:9.8-1787043869 from ubi9/nodejs-24:9.8-1786496588 [skip-build] [skip-e2e]

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>

* chore: update release-1.10 to ubi9/nodejs-24-minimal:9.8-1787019000 from ubi9/nodejs-24-minimal:9.8-1786411410 [skip-build] [skip-e2e]

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>

---------

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>
Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>
…/nodejs-24:9.8-1787043869 [skip-build] [skip-e2e] (redhat-developer#5303)

* chore: update release-1.10 to ubi9/nodejs-24:9.8-1787722670 from ubi9/nodejs-24:9.8-1787043869 [skip-build] [skip-e2e]

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>

* chore: update release-1.10 to ubi9/nodejs-24-minimal:9.8-1787708413 from ubi9/nodejs-24-minimal:9.8-1787019000 [skip-build] [skip-e2e]

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>

---------

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>
…loper#5306)

Prow strips lgtm on synchronize when a second image bump lands seconds
after the PR opens. Wait 10s after the last commit before applying lgtm
and re-run on synchronize.

https://redhat.atlassian.net/browse/RHIDP-16179

Generated-by: cursor

Co-authored-by: rhdh-bot <rhdh-bot@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…/nodejs-24:9.8-1787722670 [skip-build] [skip-e2e] (redhat-developer#5318)

* chore: update release-1.10 to ubi9/nodejs-24:9.8-1788244366 from ubi9/nodejs-24:9.8-1787722670 [skip-build] [skip-e2e]

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>

* chore: update release-1.10 to ubi9/nodejs-24-minimal:9.8-1788215621 from ubi9/nodejs-24-minimal:9.8-1787708413 [skip-build] [skip-e2e]

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>

---------

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>
…[skip-build] [skip-e2e] (redhat-developer#5326)

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…#5331)

Signed-off-by: rhdh-bot <rhdh-bot@redhat.com>
Co-authored-by: rhdh-bot <rhdh-bot@redhat.com>
…/nodejs-24:9.8-1788244366 [skip-build] [skip-e2e] (redhat-developer#5337)

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>
…e stream from the branch (redhat-developer#5342)

Port of redhat-developer#5341.

A pinned image tag did not pin the chart. `--tag 1.10-170` alone left
CHART_VERSION empty and the newest chart on the branch was resolved
instead, so an RC verification ran the pinned image against whichever
chart happened to be latest that day. Image and chart ship under the same
build number, so derive it. A GA run pins x.y.z with no --chart-version
and maps to the chart of the same name.

Both shapes now live in helm::resolve_chart_version, so the convention
sits with the rest of the chart knowledge instead of in the dispatcher.

Also from the review on redhat-developer#5341:

- helm::_fetch_chart_tags captures curl's body and status. Piping curl
  into jq loses the status, so a 5xx read as "no tag published".
- Tag selection takes max_by(.start_ts) over the CI-shaped tags rather
  than .tags[0], which assumed Quay's undocumented ordering, and `// empty`
  keeps jq from returning the string "null".
- get_chart_major_version returns 1.10, not 1 - renamed to
  get_chart_stream.

The package.json path this PR also ports is inert on a release branch:
RELEASE_BRANCH_NAME is release-1.10 in CI, so the stream comes from the
branch name. It is carried over to keep the two files in step.

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
…ld] [skip-e2e] (redhat-developer#5355)

Signed-off-by: rhdh-bot service account <rhdh-bot@redhat.com>
…he host arch (redhat-developer#5351)

* [release-1.10] fix(e2e): let local-run.sh pull the runner image for the host arch

Backport of the fixes already on main. Running local-run.sh on an arm64
host was not possible on this branch.

The runner image is multi-arch, but the pull hardcoded linux/amd64, so on
an arm64 machine every Go binary inside it ran under emulation and
crashed: vault segfaulted in gopsutil's cpu init, helm aborted with
"fatal error: lfstack.push invalid packing". Drop the flag and let podman
match the host, falling back to a local copy if the pull fails.

The vault download was hardcoded to linux_amd64 too, so it could not run
on the arm64 variant of the image either. Take the architecture from
dpkg.

And a failed vault read was invisible: `vault kv get | jq` takes jq's
status, so a crashed vault produced an empty /tmp/secrets/, the script
logged "Secrets written", and the run died fifteen seconds later on
`cat: /tmp/secrets/GH_USER_ID: No such file or directory`. Guard the
result.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* [release-1.10] style(e2e): satisfy prettier-plugin-sh on the backported block

`2>/dev/null` -> `2> /dev/null`. The block came from main, which has no
prettier in e2e-tests/ - prettier-plugin-sh is declared only on this
branch - so the spacing was never checked there.

* chore: retrigger CI

The previous run failed downloading the ShellCheck binary from GitHub
Releases (403, rate limit exceeded), not on anything in the diff.

* [release-1.10] fix(e2e): derive the vault arch from uname, not dpkg

dpkg is Debian-only. uname is portable, but its names are not the ones
HashiCorp publishes - vault_*_linux_x86_64.zip and _aarch64.zip both
return 404 - so map them, and fail loudly on an architecture with no
build rather than requesting a URL that does not exist.

Requested by Nick Boldt in review.

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
…ts (redhat-developer#5340)

* fix(ci): wait for the showcase-runtime rollout before running its tests

The showcase-runtime phase started Playwright as soon as `helm upgrade`
returned, without waiting for the deployment to become ready. The first
test in the showcase-runtime-db dependency project scales the deployment
to 0, so when the initial rollout is still running that scale-down kills
the install-dynamic-plugins init container mid-install.

That script holds a lock file on the dynamic-plugins-root PVC and
releases it from an atexit handler, which a hard kill skips. The lock
survives on the PVC and every pod created afterwards blocks forever on:

    ======= Waiting for lock release (file: /dynamic-plugins-root/install-dynamic-plugins.lock)...

Each Azure DB test then burns its full 10 minute timeout waiting for a
pod that can never become ready. Ten attempts consume 100 minutes, the
job hits the Prow timeout inside this phase, and showcase-sanity-plugins
never runs.

The race only opens wide enough to fire when the showcase-runtime
namespace also has to extract the catalog index and pull OCI plugins,
which happens when CATALOG_INDEX_IMAGE is set. That is empty on the
daily nightly, so it passes, but it is always set on the RC and GA
verification runs triggered through Gangway with --catalog-index-image.
Those runs are the reason the release branch nightlies exist, and they
have not reached the sanity plugin check at all.

Swap testing::run_tests for testing::check_and_test in both the OCP Helm
and OCP Operator runtime phases. It gates on /healthcheck before starting
the tests, so the initial plugin install always completes before anything
scales the deployment down, and it collects pod logs when tests fail.

Also align restartDeployment's internal budgets with the 10 minute
timeout its callers set: 5m + 10s + 10m could not fit, so Playwright
killed the worker mid-restart, the catch block never logged pod
conditions or events, and the retry scaled the deployment down again on
top of a rollout that was still starting. 2m + 10s + 7m fits.

Verified on an OCP 4.22 cluster by running the full handle_ocp_nightly
pipeline with CATALOG_INDEX_IMAGE set, the configuration that reproduces
the hang:

    showcase                 35 passed
    showcase-rbac            17 passed
    showcase-runtime         19 passed (22.9m, was 100m and never finished)
    showcase-sanity-plugins   9 passed (had never run)

Zero "Waiting for lock release" lines, against 648 in the failing run.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* docs(ci): trim the rationale comments to two lines

The full reasoning lives in the commit message and the PR body; the
inline comments only need to say why the call is shaped this way.

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: NiallTwomey2 <nialltwomey44@gmail.com>
@openshift-ci

openshift-ci Bot commented Sep 9, 2026

Copy link
Copy Markdown

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.

@github-actions

github-actions Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Hey there and thank you for opening this pull request! 👋🏼

We require pull request titles to follow the Conventional Commits specification and it looks like your proposed title needs to be adjusted.

Details:

No release type found in pull request title "Rhdhbugs 3725 bump better sqlite3 1.10". Add a prefix to indicate what kind of release this pull request corresponds to. For reference, see https://www.conventionalcommits.org/

Available types:
 - feat
 - fix
 - chore
 - docs
 - style
 - refactor
 - perf
 - test
 - revert

@sonarqubecloud

sonarqubecloud Bot commented Sep 9, 2026

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
C Security Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.