Skip to content

Limit Candlepin heap in development tuning - #865

Merged
ehelms merged 1 commit into
theforeman:masterfrom
jakduch:fix/864-development-candlepin-memory
Sep 25, 2026
Merged

ehelms merged 1 commit into
theforeman:masterfrom
jakduch:fix/864-development-candlepin-memory

Conversation

@jakduch

@jakduch jakduch commented Sep 24, 2026

Copy link
Copy Markdown
Contributor

Both IOP-enabled CI matrices exhausted the VM memory and the kernel killed Candlepin while it was holding about 1.2 GiB RSS. The development tuning profile inherited the production Candlepin heap defaults of 1 GiB initial and 4 GiB maximum.

Use a 512 MiB initial heap and 2 GiB maximum for development deployments, including the CI matrix, and cover the tuning values with a unit test. Production tuning profiles remain unchanged.

Fixes #864

Tested:

  • pytest -q --noconftest tests/unit/tuning_test.py
  • ansible-lint src/vars/tuning/development.yml
  • git diff --check

@coderabbitai

coderabbitai Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Advanced

Run ID: c2299146-c87b-4943-ba62-c85587f3d132

📥 Commits

Reviewing files that changed from the base of the PR and between acdb0f7 and f5fe671.

📒 Files selected for processing (2)
  • src/vars/tuning/development.yml
  • tests/unit/tuning_test.py

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

Development tuning now sets Candlepin Java’s minimum heap to 512m and maximum heap to 2g. A unit test checks both values.

Changes

Candlepin heap tuning

Layer / File(s) Summary
Heap defaults and validation
src/vars/tuning/development.yml, tests/unit/tuning_test.py
Development tuning defines the 512m minimum and 2g maximum heap values. A unit test loads the YAML and checks both values.

Priority: ➖ Normal

Estimated code review effort: 2 (Simple) | ~7 minutes

Change: Bug fix · Severity of issue fixed: Medium

Merge Risk: ⚪ Minimal · up to f5fe6

The affected CI jobs use the reduced development heap settings. The 2g maximum is not proof that the historical memory failure is impossible, but no current failure is established; merge risk is minimal based on available evidence.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 1 files. (1 skipped: 1 … Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description check ✅ Passed The description clearly explains the development Candlepin heap changes, the CI memory issue, the production scope, and the tests performed.
Title check ✅ Passed The title clearly and concisely summarizes the main change: limiting the Candlepin heap in development tuning.
Linked Issues check ✅ Passed Issue #864 requires the IOP test environment to prevent Candlepin OOM termination. The PR sets the development tuning profile to candlepin_java_opts_xms: 512m and candlepin_java_opts_xmx: 2g. The …
Out of Scope Changes check ✅ Passed The PR changes only the development tuning profile and adds a unit test for the new Candlepin heap settings. Both changes directly support Issue #864. No unrelated production tuning or unrelated behav…
Full details: Docstring Coverage

Explanation

Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 1 functions across 1 files. (1 skipped: 1 unsupported.)

  • Fix all pre-merge checks with AI

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@pablomh

pablomh commented Sep 25, 2026

Copy link
Copy Markdown
Contributor

LGTM

@ehelms
ehelms merged commit 6c79648 into theforeman:master Sep 25, 2026
29 checks passed
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.

IOP CI job can OOM-kill Candlepin

3 participants