Skip to content

ci: fix distributed smoke-test OOM (bigger machine, smaller heap, retries) - #169

Merged
joseanesONMS merged 2 commits into
developfrom
ja/alec-smoke-oom-fix-smoke
Jul 27, 2026
Merged

ci: fix distributed smoke-test OOM (bigger machine, smaller heap, retries)#169
joseanesONMS merged 2 commits into
developfrom
ja/alec-smoke-oom-fix-smoke

Conversation

@joseanesONMS

Copy link
Copy Markdown
Contributor

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 default medium machine's 7.5GB, so the OOM killer aborts container startup (Killed in 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 containers
  • surefire rerunFailingTestsCount=2 to absorb residual transient container flakiness without masking a reproducible failure

It also lets branches with -smoke in 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

large uses more CircleCI credits per smoke run than medium. Approved as the tradeoff for getting the distributed suite reliably green.

Validation

This branch (…-smoke) triggers smoke-test-full, so its own run exercises all distributed tests under the new resources. Will confirm green before requesting merge.

joseanesONMS and others added 2 commits July 22, 2026 08:51
…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>
@joseanesONMS
joseanesONMS requested a review from cgorantla July 22, 2026 17:35
@joseanesONMS

Copy link
Copy Markdown
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.

Test before after
DistributedRedundant (OOM)
DistributedStandalone[cluster]
DistributedStandalone[dbscan]
DistributedUDL
DistributedStandalone[deeplearning]

Two root causes fixed:

  1. OOM — the distributed stack (~14GB) was overflowing the default 7.5GB machine → resource_class: large (15GB) + Maven heap 3200m→1500m + rerunFailingTestsCount=2.
  2. OIA version skewsmoke-test-full has been red since ~March because alec-driver-main couldn't resolve the OIA health package in the standalone sentinel: ALEC targets OIA 2.0.0 but the images were pinned at 35.0.3 (OIA 1.6.1). Bumped opennms/sentinel + opennms/horizon to 36.0.2.

The one remaining red — DistributedStandalone[deeplearning] — is the slow TensorFlow engine timing out on model load. That engine (and this test param) is removed by #166 (ALEC-305), so once both land, the full suite is green. Details in my analysis above.

@cgorantla cgorantla left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM!

@joseanesONMS
joseanesONMS merged commit 9590d9d into develop Jul 27, 2026
7 of 8 checks passed
@joseanesONMS
joseanesONMS deleted the ja/alec-smoke-oom-fix-smoke branch July 27, 2026 17:07
joseanesONMS added a commit that referenced this pull request Aug 12, 2026
Merge release-3.x into develop: unify smoke-test fixes (#166 + #169)
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.

2 participants