DOWNSTREAM: carry: OCPBUGS-103516: Replace bbolt with patched fork to remove MADV_RANDOM - #395
DOWNSTREAM: carry: OCPBUGS-103516: Replace bbolt with patched fork to remove MADV_RANDOM#395hasbro17 wants to merge 1 commit into
Conversation
…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: This pull request references Jira Issue OCPBUGS-103516, which is invalid:
Comment The bug has been updated to refer to the pull request using the external bug tracker. DetailsIn response to this:
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. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository: openshift/coderabbit/.coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: ⛔ Files ignored due to path filters (4)
📒 Files selected for processing (4)
WalkthroughThe pull request updates ChangesModule dependency alignment
Estimated code review effort: 1 (Trivial) | ~5 minutes Suggested reviewers: 🚥 Pre-merge checks | ✅ 15✅ Passed checks (15 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: hasbro17 The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
/jira refresh |
|
@hasbro17: This pull request references Jira Issue OCPBUGS-103516, which is valid. 3 validation(s) were run on this bug
DetailsIn response to this:
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. |
|
@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
DetailsIn response to this:
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. |
|
/pj-rehearse pull-ci-openshift-etcd-main-perfscale-control-plane-6nodes |
|
/test perfscale-control-plane-6nodes |
|
@hasbro17: The following tests failed, say
Full PR test history. Your PR dashboard. DetailsInstructions 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. |
|
/payload-job periodic-ci-openshift-eng-ocp-perfscale-main-aws-5.0-nightly-x86-control-plane-fips-24nodes |
|
@mcornea: trigger 1 job(s) for the /payload-(with-prs|job|aggregate|job-with-prs|aggregate-with-prs) command
See details on https://pr-payload-tests.ci.openshift.org/runs/ci/45e4cef0-90a6-11f1-84e2-697c00fba475-0 |
Summary
Testing-only PR — the actual downstream fix should land via
openshift/bboltonce that fork is synced to upstream v1.4.3.This replaces the bbolt dependency with a patched fork
hasbro17/bbolt@remove-madv-randomthat removes themadvise(MADV_RANDOM)call from bbolt's mmap path.Since Linux 6.4 (torvalds/linux@8788f678),
MADV_RANDOMcauses the kernel to aggressively evict mmap'd pages byshort-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
openshift/bboltto upstream v1.4.3 and apply the patch thereopenshift/bbolt(or open a new PR)etcd-io/bbolt(#939)References
Summary by CodeRabbit