ci: fix distributed smoke-test OOM (bigger machine, smaller heap, retries) - #169
Merged
Conversation
…ries) The distributed smoke tests stand up a full stack per test (OpenNMS + Sentinel x2 + Kafka + Zookeeper + Postgres + Grafana/Helm + Selenium/VNC) plus a 3.2GB Maven heap — ~14GB against the default medium machine's 7.5GB. The OOM killer then aborts container startup, surfacing as ContainerLaunchException / container-shutdown timeouts. The tell: IntegratedCorrelationTest (one lightweight container) passes while every multi-container distributed test fails. - smoke-test-executor: resource_class: large (4 vCPU / 15GB) - MAVEN_OPTS: -Xmx3200m -> -Xmx1500m (the test JVM only orchestrates containers; give the RAM to the containers) - surefire rerunFailingTestsCount=2 to absorb residual transient container flakiness without masking reproducible failures Also lets branches with -smoke in the name run the full smoke suite (previously develop/release/tags only), so this fix can be validated against the whole distributed suite before merge. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The standalone-sentinel smoke tests (DistributedStandalone*, DistributedUDL) fail because alec-driver-main can't resolve the OpenNMS Integration API 'health' package: OIA never gets installed in the standalone sentinel. ALEC is built against OIA 2.0.0 (opennms.api.version) but the pinned 35.0.3 images ship OIA 1.6.1. Bump to the latest released 36.0.2 to move the test images toward ALEC's OIA build target. (Redundant test passes because sentinel-coordination-zookeeper transitively installs OIA; standalone has no such provider.) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Contributor
Author
|
@cgorantla this is ready for review — it fixes the long-standing distributed smoke-test failures. Validated on this branch's full-smoke run (#8924): the fix takes the distributed suite from 4 failures → 1.
Two root causes fixed:
The one remaining red — |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The distributed smoke tests fail with
ContainerLaunchException/ container-shutdown timeouts that look like an infra flake but are OOM. Each distributed test stands up a full stack —opennms/horizon(~3GB) +opennms/sentinel×2 (~4GB) + Kafka + Zookeeper + Postgres + Grafana/Helm + Selenium/VNC (~1.2GB) — on top of a 3.2GB Maven heap. That's ~14GB against the defaultmediummachine's 7.5GB, so the OOM killer aborts container startup (Killedin the logs).The tell:
IntegratedCorrelationTest(one lightweight OpenNMS container) passes every run, while every multi-container distributed test fails.Fix
smoke-test-executor:resource_class: large(4 vCPU / 15GB)MAVEN_OPTS:-Xmx3200m→-Xmx1500m— the test JVM only orchestrates containers, so hand the RAM to the containersrerunFailingTestsCount=2to absorb residual transient container flakiness without masking a reproducible failureIt also lets branches with
-smokein the name run the full smoke suite (previously develop/release/tags only) — which is how this branch validates the fix against the whole distributed suite before merge.Cost
largeuses more CircleCI credits per smoke run thanmedium. Approved as the tradeoff for getting the distributed suite reliably green.Validation
This branch (
…-smoke) triggerssmoke-test-full, so its own run exercises all distributed tests under the new resources. Will confirm green before requesting merge.