Skip to content

DOWNSTREAM: carry: OCPBUGS-103516: Replace bbolt with patched fork to remove MADV_RANDOM - #395

Merged
openshift-merge-bot[bot] merged 2 commits into
openshift:mainfrom
hasbro17:remove-madv-random
Aug 10, 2026
Merged

DOWNSTREAM: carry: OCPBUGS-103516: Replace bbolt with patched fork to remove MADV_RANDOM#395
openshift-merge-bot[bot] merged 2 commits into
openshift:mainfrom
hasbro17:remove-madv-random

Conversation

@hasbro17

@hasbro17 hasbro17 commented Aug 4, 2026

Copy link
Copy Markdown

Summary

This replaces the bbolt dependency with the patched openshift/bbolt release-5.0 branch (v1.4.3 + MADV_RANDOM removal) that removes the madvise(MADV_RANDOM) call from bbolt's mmap path.

Updates REBASE.openshift.md with instructions for maintaining the openshift/bbolt fork across etcd rebases, including when to drop it once upstream ships the fix.

Background

Since Linux 6.4 (torvalds/linux@8788f678), MADV_RANDOM causes the kernel to aggressively evict mmap'd pages by
short-circuiting the second-chance LRU mechanism. This results in high major page fault rates on bbolt's database file, particularly during compaction which sees order-of-magnitude duration increases. On OCP
5.0 FIPS clusters (RHCOS10, kernel 6.12), this manifests as significant etcd compaction duration increases and elevated major page faults under perfscale workloads.

This is the same root cause as OCPBUGS-50521 (OCP 4.19), which was fixed kernel-side by reverting the behavior change in RHEL 9.6. The RHEL kernel team has stated this behavior will not be reverted in RHEL 10,
so the fix must be in bbolt.

Next steps

  • Validate with perfscale CI on RHCOS10 FIPS clusters
  • Sync openshift/bbolt to upstream v1.4.3 and apply the patch there
  • Update this PR's replace directive to point to openshift/bbolt (or open a new PR)
  • Push the fix upstream to etcd-io/bbolt (#939)

References

Summary by CodeRabbit

Chores

  • Updated underlying system and synchronization components for improved compatibility and maintenance.
  • Improved embedded database integration consistency across application, server, utility, and test environments.
  • Added guidance for maintaining compatibility during future platform rebases and release updates.
  • No new user-facing features or intentional changes to existing behavior are included.

@openshift-ci-robot openshift-ci-robot added jira/severity-critical Referenced Jira bug's severity is critical for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Aug 4, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@hasbro17: This pull request references Jira Issue OCPBUGS-103516, which is invalid:

  • expected the bug to target the "5.0.0" version, but no target version was set

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

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

Details

In response to this:

Summary

Testing-only PR — the actual downstream fix should land via openshift/bbolt once that fork is synced to upstream v1.4.3.

This replaces the bbolt dependency with a patched fork hasbro17/bbolt@remove-madv-random that removes the madvise(MADV_RANDOM) call from bbolt's mmap path.

Since Linux 6.4 (torvalds/linux@8788f678), MADV_RANDOM causes the kernel to aggressively evict mmap'd pages by
short-circuiting the second-chance LRU mechanism. This results in high major page fault rates on bbolt's database file, particularly during compaction which sees order-of-magnitude duration increases. On OCP
5.0 FIPS clusters (RHCOS10, kernel 6.12), this manifests as a ~30% WAL fdatasync P99 latency regression.

This is the same root cause as OCPBUGS-50521 (OCP 4.19), which was fixed kernel-side by reverting the behavior change in RHEL 9.6. The RHEL kernel team has stated this behavior will not be reverted in RHEL 10,
so the fix must be in bbolt.

Next steps

  • Validate with perfscale CI on RHCOS10 FIPS clusters
  • Sync openshift/bbolt to upstream v1.4.3 and apply the patch there
  • Update this PR's replace directive to point to openshift/bbolt (or open a new PR)
  • Push the fix upstream to etcd-io/bbolt (#939)

References

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 4, 2026

Copy link
Copy Markdown

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

The pull request updates dependency versions in four Go modules, adds a pinned github.com/openshift/bbolt replacement, and documents downstream fork maintenance.

Changes

Dependency alignment

Layer / File(s) Summary
Module requirements and bbolt replacement
go.mod, etcdutl/go.mod, server/go.mod, tests/go.mod
The modules update golang.org/x/sys to v0.47.0. tests/go.mod updates golang.org/x/sync to v0.22.0. Each module replaces go.etcd.io/bbolt with the pinned github.com/openshift/bbolt revision.
Fork maintenance procedure
REBASE.openshift.md
The documentation describes the fork patch, release-branch requirements, rebase steps, required go.mod updates, and the condition for removing the patch.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Suggested reviewers: deads2k, dusk125

🚥 Pre-merge checks | ✅ 15
✅ Passed checks (15 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names ✅ Passed The PR changes only dependency manifests, checksums, and REBASE.openshift.md; it adds no test source or Ginkgo test title declarations.
Test Structure And Quality ✅ Passed The PR changes only Go module metadata and REBASE.openshift.md; it adds no Ginkgo test code, It blocks, cluster operations, waits, or assertions to review.
Microshift Test Compatibility ✅ Passed The PR adds no Ginkgo or other test source files; it changes only go.mod/go.sum files and REBASE.openshift.md, so MicroShift test compatibility is not applicable.
Single Node Openshift (Sno) Test Compatibility ✅ Passed The PR changes only module metadata, checksums, and REBASE.openshift.md; it adds or modifies no Go, Ginkgo, or e2e tests, so SNO compatibility review is not applicable.
Topology-Aware Scheduling Compatibility ✅ Passed The PR changes only Go module files, checksums, and REBASE.openshift.md; it adds no manifests, operator code, controllers, or topology scheduling constraints.
Ote Binary Stdout Contract ✅ Passed The PR changes only four go.mod/go.sum files and REBASE.openshift.md; no Go entrypoint or suite-setup source files changed, so no OTE stdout write was introduced.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed The complete PR diff changes only go.mod/go.sum files and REBASE.openshift.md; it adds no Ginkgo e2e tests or test networking code.
No-Weak-Crypto ✅ Passed PR adds only module metadata and documentation; no weak-crypto or custom crypto code was added. The pinned fork uses SHA-256 only, and existing SHA-1/RC4 hits are unchanged.
Container-Privileges ✅ Passed The PR changes only Go module files and REBASE.openshift.md; no container/Kubernetes manifest adds privileged, host*, SYS_ADMIN, or root settings.
No-Sensitive-Data-In-Logs ✅ Passed The PR changes documentation and Go module metadata only; the complete diff adds no logging calls or sensitive values such as passwords, tokens, keys, or PII.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the main change: replacing bbolt with a patched fork to remove MADV_RANDOM, and it includes the tracking issue.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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

@openshift-ci
openshift-ci Bot requested review from deads2k and dusk125 August 4, 2026 20:42
@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Aug 4, 2026
@hasbro17

hasbro17 commented Aug 4, 2026

Copy link
Copy Markdown
Author

/jira refresh

@openshift-ci-robot openshift-ci-robot added jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. and removed jira/invalid-bug Indicates that a referenced Jira bug is invalid for the branch this PR is targeting. labels Aug 4, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@hasbro17: This pull request references Jira Issue OCPBUGS-103516, which is valid.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (5.0.0) matches configured target version for branch (5.0.0)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, POST)
Details

In response to this:

Summary

Testing-only PR — the actual downstream fix should land via openshift/bbolt once that fork is synced to upstream v1.4.3.

This replaces the bbolt dependency with a patched fork hasbro17/bbolt@remove-madv-random that removes the madvise(MADV_RANDOM) call from bbolt's mmap path.

Since Linux 6.4 (torvalds/linux@8788f678), MADV_RANDOM causes the kernel to aggressively evict mmap'd pages by
short-circuiting the second-chance LRU mechanism. This results in high major page fault rates on bbolt's database file, particularly during compaction which sees order-of-magnitude duration increases. On OCP
5.0 FIPS clusters (RHCOS10, kernel 6.12), this manifests as a ~30% WAL fdatasync P99 latency regression.

This is the same root cause as OCPBUGS-50521 (OCP 4.19), which was fixed kernel-side by reverting the behavior change in RHEL 9.6. The RHEL kernel team has stated this behavior will not be reverted in RHEL 10,
so the fix must be in bbolt.

Next steps

  • Validate with perfscale CI on RHCOS10 FIPS clusters
  • Sync openshift/bbolt to upstream v1.4.3 and apply the patch there
  • Update this PR's replace directive to point to openshift/bbolt (or open a new PR)
  • Push the fix upstream to etcd-io/bbolt (#939)

References

Summary by CodeRabbit

  • Chores
  • Updated underlying system and synchronization components to newer versions.
  • Improved embedded database compatibility through an updated implementation mapping.
  • No user-facing features or behavior changes.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-ci-robot

Copy link
Copy Markdown

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

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (5.0.0) matches configured target version for branch (5.0.0)
  • bug is in the state New, which is one of the valid states (NEW, ASSIGNED, POST)
Details

In response to this:

/jira refresh

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@afcollins

Copy link
Copy Markdown

/pj-rehearse pull-ci-openshift-etcd-main-perfscale-control-plane-6nodes

@afcollins

Copy link
Copy Markdown

/test perfscale-control-plane-6nodes

@mcornea

mcornea commented Aug 5, 2026

Copy link
Copy Markdown

/payload-job periodic-ci-openshift-eng-ocp-perfscale-main-aws-5.0-nightly-x86-control-plane-fips-24nodes

@openshift-ci

openshift-ci Bot commented Aug 5, 2026

Copy link
Copy Markdown

@mcornea: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-eng-ocp-perfscale-main-aws-5.0-nightly-x86-control-plane-fips-24nodes

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/45e4cef0-90a6-11f1-84e2-697c00fba475-0

…to remove MADV_RANDOM

Since Linux 6.4, MADV_RANDOM causes the kernel to aggressively evict
mmap'd pages, resulting in major page faults on bbolt's database file
and order-of-magnitude compaction duration increases. The RHEL 10 kernel
will not revert this behavior change, so the fix must be in bbolt.

This adds a go.mod replace directive pointing to a patched bbolt fork
with the MADV_RANDOM madvise hint removed. The replace should be dropped
once the fix is merged upstream (etcd-io/bbolt#939).

Ref: etcd-io/bbolt#939
Ref: https://redhat.atlassian.net/browse/OCPBUGS-103516

Assisted-by: Claude Code (Opus 4.6)
@hasbro17
hasbro17 force-pushed the remove-madv-random branch from 76de772 to b74556a Compare August 6, 2026 04:20
@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@openshift-ci-robot

Copy link
Copy Markdown

@hasbro17: This pull request references Jira Issue OCPBUGS-103516, which is valid.

3 validation(s) were run on this bug
  • bug is open, matching expected state (open)
  • bug target version (5.0.0) matches configured target version for branch (5.0.0)
  • bug is in the state POST, which is one of the valid states (NEW, ASSIGNED, POST)
Details

In response to this:

Summary

Testing-only PR — the actual downstream fix should land via openshift/bbolt once that fork is synced to upstream v1.4.3.

This replaces the bbolt dependency with a patched fork hasbro17/bbolt@remove-madv-random that removes the madvise(MADV_RANDOM) call from bbolt's mmap path.

Since Linux 6.4 (torvalds/linux@8788f678), MADV_RANDOM causes the kernel to aggressively evict mmap'd pages by
short-circuiting the second-chance LRU mechanism. This results in high major page fault rates on bbolt's database file, particularly during compaction which sees order-of-magnitude duration increases. On OCP
5.0 FIPS clusters (RHCOS10, kernel 6.12), this manifests as a ~30% WAL fdatasync P99 latency regression.

This is the same root cause as OCPBUGS-50521 (OCP 4.19), which was fixed kernel-side by reverting the behavior change in RHEL 9.6. The RHEL kernel team has stated this behavior will not be reverted in RHEL 10,
so the fix must be in bbolt.

Next steps

  • Validate with perfscale CI on RHCOS10 FIPS clusters
  • Sync openshift/bbolt to upstream v1.4.3 and apply the patch there
  • Update this PR's replace directive to point to openshift/bbolt (or open a new PR)
  • Push the fix upstream to etcd-io/bbolt (#939)

References

Summary by CodeRabbit

  • Chores
  • Updated underlying system and synchronization components to newer versions.
  • Improved embedded database compatibility through an updated implementation mapping.
  • Enhanced consistency across application, server, utility, and test environments.
  • No new user-facing features or intentional changes to existing behavior are included in this update.

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 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

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

Inline comments:
In `@REBASE.openshift.md`:
- Around line 78-82: Update step 3 of the release instructions to require
regenerating the complete openshift/bbolt pseudo-version, including both its
commit timestamp and commit hash, then apply that full version consistently in
the root, server, etcdutl, and tests go.mod files.
- Around line 88-89: Keep the carry patch until the corresponding openshift/etcd
branch adopts a released bbolt version containing the MADV_RANDOM fix; do not
remove it solely because the upstream change has been merged. Update the
patch-removal note to make the released-version requirement explicit.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: 72c941b4-468c-47c7-8563-db186d74be3b

📥 Commits

Reviewing files that changed from the base of the PR and between b74556a and c902411.

📒 Files selected for processing (1)
  • REBASE.openshift.md

Comment thread REBASE.openshift.md Outdated
Comment thread REBASE.openshift.md Outdated
@hasbro17
hasbro17 force-pushed the remove-madv-random branch from c902411 to ad0b11f Compare August 6, 2026 05:22
@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 3

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

Inline comments:
In `@REBASE.openshift.md`:
- Around line 78-80: Update Step 2 in the bbolt release instructions to make
cherry-picking the MADV_RANDOM removal patch conditional: maintainers should
apply it only when the selected base bbolt tag does not already contain the fix,
and skip it otherwise.
- Line 85: Update the fenced command block near the closing fence in
REBASE.openshift.md to include a shell language identifier, using sh or bash, so
the block satisfies MD040.
- Around line 81-87: Update the module-update instructions to run the bbolt
replacement and go mod tidy for each module: root, server, etcdutl, and tests.
Use an explicit per-directory command or loop so all four go.mod files resolve
the same commit revision.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

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

Review profile: CHILL

Plan: Enterprise

Run ID: 114b4170-2986-401e-bea2-55339c94c527

📥 Commits

Reviewing files that changed from the base of the PR and between 64f8851 and ad0b11f.

⛔ Files ignored due to path filters (4)
  • etcdutl/go.sum is excluded by !**/*.sum
  • go.sum is excluded by !**/*.sum
  • server/go.sum is excluded by !**/*.sum
  • tests/go.sum is excluded by !**/*.sum
📒 Files selected for processing (5)
  • REBASE.openshift.md
  • etcdutl/go.mod
  • go.mod
  • server/go.mod
  • tests/go.mod
🚧 Files skipped from review as they are similar to previous changes (4)
  • tests/go.mod
  • etcdutl/go.mod
  • server/go.mod
  • go.mod

Comment thread REBASE.openshift.md
Comment thread REBASE.openshift.md Outdated
Comment thread REBASE.openshift.md Outdated
…in REBASE.openshift.md

Assisted-by: Claude Code (Opus 4.6)
@hasbro17
hasbro17 force-pushed the remove-madv-random branch from ad0b11f to e66403a Compare August 6, 2026 05:34
@coderabbitai

coderabbitai Bot commented Aug 6, 2026

Copy link
Copy Markdown

Note

GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer.

@hasbro17

hasbro17 commented Aug 6, 2026

Copy link
Copy Markdown
Author

/payload-job periodic-ci-openshift-eng-ocp-perfscale-main-aws-5.0-nightly-x86-control-plane-fips-24nodes

@openshift-ci

openshift-ci Bot commented Aug 6, 2026

Copy link
Copy Markdown

@hasbro17: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command

  • periodic-ci-openshift-eng-ocp-perfscale-main-aws-5.0-nightly-x86-control-plane-fips-24nodes

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/3c881a00-915b-11f1-9ca0-358c3187473d-0

@openshift-ci

openshift-ci Bot commented Aug 6, 2026

Copy link
Copy Markdown

@hasbro17: 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/upstream-e2e e66403a link false /test upstream-e2e
ci/prow/perfscale-control-plane-6nodes e66403a link false /test perfscale-control-plane-6nodes

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.

@dusk125

dusk125 commented Aug 6, 2026

Copy link
Copy Markdown

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Aug 6, 2026
@openshift-ci

openshift-ci Bot commented Aug 6, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: dusk125, hasbro17

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

The pull request process is described here

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

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

@hasbro17

hasbro17 commented Aug 6, 2026

Copy link
Copy Markdown
Author

/retest-required

@hasbro17

hasbro17 commented Aug 6, 2026

Copy link
Copy Markdown
Author

/payload 5.0 nightly informing

@openshift-ci

openshift-ci Bot commented Aug 6, 2026

Copy link
Copy Markdown

@hasbro17: trigger 67 job(s) of type informing for the nightly release of OCP 5.0

  • periodic-ci-openshift-release-main-nightly-5.0-console-aws
  • periodic-ci-openshift-cluster-control-plane-machine-set-operator-release-5.0-periodics-e2e-aws
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-csi
  • periodic-ci-openshift-release-main-ci-5.0-e2e-aws-ovn
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-cgroupsv2
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-fips
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-single-node
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-single-node-csi
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-single-node-serial
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-single-node-techpreview
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-single-node-techpreview-serial
  • periodic-ci-openshift-release-main-nightly-5.0-upgrade-from-stable-4.22-e2e-aws-upgrade-ovn-single-node
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips-no-nat-instance
  • periodic-ci-openshift-release-main-ci-5.0-e2e-aws-ovn-upgrade-out-of-change
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upi
  • periodic-ci-openshift-cluster-control-plane-machine-set-operator-release-5.0-periodics-e2e-azure
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-azure-csi
  • periodic-ci-openshift-release-main-ci-5.0-e2e-azure-ovn
  • periodic-ci-openshift-release-main-ci-5.0-e2e-azure-ovn-serial
  • periodic-ci-openshift-release-main-ci-5.0-e2e-azure-ovn-techpreview
  • periodic-ci-openshift-release-main-ci-5.0-e2e-azure-ovn-techpreview-serial-1of2
  • periodic-ci-openshift-release-main-ci-5.0-e2e-azure-ovn-techpreview-serial-2of2
  • periodic-ci-openshift-release-main-ci-5.0-e2e-azure-ovn-upgrade-out-of-change
  • periodic-ci-openshift-release-main-cnv-nightly-5.0-deploy-azure-kubevirt-ovn
  • periodic-ci-openshift-cluster-control-plane-machine-set-operator-release-5.0-periodics-e2e-gcp
  • periodic-ci-openshift-release-main-ci-5.0-e2e-gcp-ovn
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-gcp-ovn-csi
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-gcp-ovn-rt
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-gcp-ovn-serial
  • periodic-ci-openshift-release-main-ci-5.0-e2e-gcp-ovn-techpreview
  • periodic-ci-openshift-release-main-ci-5.0-e2e-gcp-ovn-techpreview-serial-1of2
  • periodic-ci-openshift-release-main-ci-5.0-e2e-gcp-ovn-techpreview-serial-2of2
  • periodic-ci-openshift-release-main-ci-5.0-upgrade-from-stable-4.22-e2e-gcp-ovn-upgrade
  • periodic-ci-openshift-release-main-ci-5.0-e2e-gcp-ovn-upgrade
  • periodic-ci-openshift-hypershift-release-5.0-periodics-e2e-azure-kubevirt-ovn
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-metal-ipi-ovn-dualstack
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-metal-ipi-ovn-dualstack-techpreview
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-metal-ipi-ovn-ipv6-techpreview
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-metal-ipi-ovn-serial-ipv4
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-metal-ipi-ovn-serial-virtualmedia-1of2
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-metal-ipi-ovn-serial-virtualmedia-2of2
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-metal-ipi-ovn-techpreview
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-metal-ipi-ovn-upgrade
  • periodic-ci-openshift-release-main-nightly-5.0-upgrade-from-stable-4.22-e2e-metal-ipi-ovn-upgrade
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-metal-ipi-serial-ovn-ipv6
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-metal-ipi-serial-ovn-dualstack
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-metal-ipi-upgrade-ovn-ipv6
  • periodic-ci-openshift-release-main-nightly-5.0-upgrade-from-stable-4.22-e2e-metal-ipi-upgrade-ovn-ipv6
  • periodic-ci-openshift-release-main-nightly-5.0-metal-ovn-single-node-recert-cluster-rename
  • periodic-ci-openshift-microshift-release-5.0-periodics-e2e-aws-ovn-ocp-conformance
  • periodic-ci-openshift-microshift-release-5.0-periodics-e2e-aws-ovn-ocp-conformance-serial
  • periodic-ci-openshift-eng-ocp-perfscale-main-aws-5.0-nightly-x86-payload-control-plane-6nodes
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-osd-ccs-gcp
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-proxy
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-metal-ovn-single-node-live-iso
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-telco5g
  • periodic-ci-openshift-release-main-nightly-5.0-tls-scan
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-vsphere-ovn
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-vsphere-ovn-csi
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-vsphere-ovn-serial
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-vsphere-ovn-techpreview
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-vsphere-ovn-techpreview-serial
  • periodic-ci-openshift-release-main-ci-5.0-upgrade-from-stable-4.22-e2e-vsphere-ovn-upgrade
  • periodic-ci-openshift-release-main-ci-5.0-e2e-vsphere-ovn-upgrade
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-vsphere-ovn-upi
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-vsphere-ovn-upi-serial
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-vsphere-static-ovn

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/6e3da420-91ce-11f1-9129-a0a8a2976de3-0

@hasbro17

hasbro17 commented Aug 6, 2026

Copy link
Copy Markdown
Author

/payload 5.0 nightly blocking

@openshift-ci

openshift-ci Bot commented Aug 6, 2026

Copy link
Copy Markdown

@hasbro17: trigger 14 job(s) of type blocking for the nightly release of OCP 5.0

  • periodic-ci-openshift-release-main-ci-5.0-e2e-aws-upgrade-ovn-single-node
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips
  • periodic-ci-openshift-release-main-ci-5.0-e2e-azure-ovn-upgrade
  • periodic-ci-openshift-release-main-ci-5.0-upgrade-from-stable-4.22-e2e-gcp-ovn-rt-upgrade
  • periodic-ci-openshift-hypershift-release-5.0-periodics-e2e-azure-aks-ovn-conformance
  • periodic-ci-openshift-hypershift-release-5.0-periodics-e2e-aws-ovn-conformance
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-serial-1of2
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-serial-2of2
  • periodic-ci-openshift-release-main-ci-5.0-e2e-aws-ovn-techpreview
  • periodic-ci-openshift-release-main-ci-5.0-e2e-aws-ovn-techpreview-serial-1of3
  • periodic-ci-openshift-release-main-ci-5.0-e2e-aws-ovn-techpreview-serial-2of3
  • periodic-ci-openshift-release-main-ci-5.0-e2e-aws-ovn-techpreview-serial-3of3
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-metal-ipi-ovn-ipv4
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-metal-ipi-ovn-ipv6

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/78c80160-91ce-11f1-8bfc-e73edb50fc97-0

@hasbro17

hasbro17 commented Aug 6, 2026

Copy link
Copy Markdown
Author

/payload 5.0 nightly blocking

@openshift-ci

openshift-ci Bot commented Aug 6, 2026

Copy link
Copy Markdown

@hasbro17: trigger 14 job(s) of type blocking for the nightly release of OCP 5.0

  • periodic-ci-openshift-release-main-ci-5.0-e2e-aws-upgrade-ovn-single-node
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips
  • periodic-ci-openshift-release-main-ci-5.0-e2e-azure-ovn-upgrade
  • periodic-ci-openshift-release-main-ci-5.0-upgrade-from-stable-4.22-e2e-gcp-ovn-rt-upgrade
  • periodic-ci-openshift-hypershift-release-5.0-periodics-e2e-azure-aks-ovn-conformance
  • periodic-ci-openshift-hypershift-release-5.0-periodics-e2e-aws-ovn-conformance
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-serial-1of2
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-serial-2of2
  • periodic-ci-openshift-release-main-ci-5.0-e2e-aws-ovn-techpreview
  • periodic-ci-openshift-release-main-ci-5.0-e2e-aws-ovn-techpreview-serial-1of3
  • periodic-ci-openshift-release-main-ci-5.0-e2e-aws-ovn-techpreview-serial-2of3
  • periodic-ci-openshift-release-main-ci-5.0-e2e-aws-ovn-techpreview-serial-3of3
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-metal-ipi-ovn-ipv4
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-metal-ipi-ovn-ipv6

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/85dcc950-91ea-11f1-83f3-e1c21fa25ec8-0

@hasbro17

hasbro17 commented Aug 7, 2026

Copy link
Copy Markdown
Author

/payload 5.0 nightly blocking

@openshift-ci

openshift-ci Bot commented Aug 7, 2026

Copy link
Copy Markdown

@hasbro17: trigger 14 job(s) of type blocking for the nightly release of OCP 5.0

  • periodic-ci-openshift-release-main-ci-5.0-e2e-aws-upgrade-ovn-single-node
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-upgrade-fips
  • periodic-ci-openshift-release-main-ci-5.0-e2e-azure-ovn-upgrade
  • periodic-ci-openshift-release-main-ci-5.0-upgrade-from-stable-4.22-e2e-gcp-ovn-rt-upgrade
  • periodic-ci-openshift-hypershift-release-5.0-periodics-e2e-azure-aks-ovn-conformance
  • periodic-ci-openshift-hypershift-release-5.0-periodics-e2e-aws-ovn-conformance
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-serial-1of2
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-aws-ovn-serial-2of2
  • periodic-ci-openshift-release-main-ci-5.0-e2e-aws-ovn-techpreview
  • periodic-ci-openshift-release-main-ci-5.0-e2e-aws-ovn-techpreview-serial-1of3
  • periodic-ci-openshift-release-main-ci-5.0-e2e-aws-ovn-techpreview-serial-2of3
  • periodic-ci-openshift-release-main-ci-5.0-e2e-aws-ovn-techpreview-serial-3of3
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-metal-ipi-ovn-ipv4
  • periodic-ci-openshift-release-main-nightly-5.0-e2e-metal-ipi-ovn-ipv6

See details on https://pr-payload-tests.ci.openshift.org/runs/ci/28126020-9283-11f1-8940-4aa44e08f917-0

@hasbro17

Copy link
Copy Markdown
Author

The blocking payload jobs look good.
The upstream-e2e failure is pre-existing and unrelated to this change.

@hasbro17

Copy link
Copy Markdown
Author

/verified by ci

@openshift-ci-robot openshift-ci-robot added the verified Signifies that the PR passed pre-merge verification criteria label Aug 10, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@hasbro17: This PR has been marked as verified by ci.

Details

In response to this:

/verified by ci

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@openshift-merge-bot

Copy link
Copy Markdown

/retest-required

Remaining retests: 0 against base HEAD 3688f53 and 2 for PR HEAD e66403a in total

@openshift-merge-bot
openshift-merge-bot Bot merged commit 609b11e into openshift:main Aug 10, 2026
11 of 13 checks passed
@openshift-ci-robot

Copy link
Copy Markdown

@hasbro17: Jira Issue OCPBUGS-103516: Some pull requests linked via external trackers have merged:

The following pull request, linked via external tracker, has not merged:

All associated pull requests must be merged or unlinked from the Jira bug in order for it to move to the next state. Once unlinked, request a bug refresh with /jira refresh.

Jira Issue OCPBUGS-103516 has not been moved to the MODIFIED state.

This PR is marked as verified. If the remaining PRs listed above are marked as verified before merging, the issue will automatically be moved to VERIFIED after all of the changes from the PRs are available in an accepted nightly payload.

Details

In response to this:

Summary

This replaces the bbolt dependency with the patched openshift/bbolt release-5.0 branch (v1.4.3 + MADV_RANDOM removal) that removes the madvise(MADV_RANDOM) call from bbolt's mmap path.

Updates REBASE.openshift.md with instructions for maintaining the openshift/bbolt fork across etcd rebases, including when to drop it once upstream ships the fix.

Background

Since Linux 6.4 (torvalds/linux@8788f678), MADV_RANDOM causes the kernel to aggressively evict mmap'd pages by
short-circuiting the second-chance LRU mechanism. This results in high major page fault rates on bbolt's database file, particularly during compaction which sees order-of-magnitude duration increases. On OCP
5.0 FIPS clusters (RHCOS10, kernel 6.12), this manifests as significant etcd compaction duration increases and elevated major page faults under perfscale workloads.

This is the same root cause as OCPBUGS-50521 (OCP 4.19), which was fixed kernel-side by reverting the behavior change in RHEL 9.6. The RHEL kernel team has stated this behavior will not be reverted in RHEL 10,
so the fix must be in bbolt.

Next steps

  • Validate with perfscale CI on RHCOS10 FIPS clusters
  • Sync openshift/bbolt to upstream v1.4.3 and apply the patch there
  • Update this PR's replace directive to point to openshift/bbolt (or open a new PR)
  • Push the fix upstream to etcd-io/bbolt (#939)

References

Summary by CodeRabbit

Chores

  • Updated underlying system and synchronization components for improved compatibility and maintenance.
  • Improved embedded database integration consistency across application, server, utility, and test environments.
  • Added guidance for maintaining compatibility during future platform rebases and release updates.
  • No new user-facing features or intentional changes to existing behavior are included.

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.

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

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/severity-critical Referenced Jira bug's severity is critical for the branch this PR is targeting. jira/valid-bug Indicates that a referenced Jira bug is valid for the branch this PR is targeting. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged. verified Signifies that the PR passed pre-merge verification criteria

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants