ci: smoke-test the computing-unit cluster (master boot + worker join)#6719
Open
mengw15 wants to merge 1 commit into
Open
ci: smoke-test the computing-unit cluster (master boot + worker join)#6719mengw15 wants to merge 1 commit into
mengw15 wants to merge 1 commit into
Conversation
Contributor
Automated Reviewer SuggestionsBased on the
|
mengw15
marked this pull request as draft
July 21, 2026 20:27
mengw15
force-pushed
the
ci/6523-cu-worker-cluster-join-smoke
branch
from
July 21, 2026 20:44
3bcebab to
7d0a8fa
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #6719 +/- ##
============================================
- Coverage 74.65% 74.65% -0.01%
Complexity 3438 3438
============================================
Files 1160 1160
Lines 45793 45793
Branches 5069 5069
============================================
- Hits 34189 34188 -1
Misses 9953 9953
- Partials 1651 1652 +1
*This pull request uses carry forward flags. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Contributor
✅ No material benchmark regressions detected🟢 2 better · 🔴 0 worse · ⚪ 13 noise (<±5%) · 0 without baseline
Baseline detailsLatest main
Raw CSVconfig_idx,batch_size,schema_width,string_len,num_batches,total_ms,total_tuples,total_bytes,tuples_per_sec,mb_per_sec,lat_p50_us,lat_p95_us,lat_p99_us
0,10,10,64,20,354.00,200,128000,565,0.345,17356.82,23616.18,23616.18
1,100,10,64,20,1672.70,2000,1280000,1196,0.730,82393.19,114640.19,114640.19
2,1000,10,64,20,13923.97,20000,12800000,1436,0.877,698670.09,730690.60,730690.60 |
mengw15
force-pushed
the
ci/6523-cu-worker-cluster-join-smoke
branch
from
July 21, 2026 21:15
7d0a8fa to
2a7025a
Compare
mengw15
force-pushed
the
ci/6523-cu-worker-cluster-join-smoke
branch
from
July 21, 2026 21:38
2a7025a to
52e89d2
Compare
Nothing in CI verified that an amber worker node can join a running cluster: the standalone computing-unit-master boot check formed only a 1-node self-seeded cluster, and the packaged computing-unit-worker launcher was never started at all. A regression in the worker's join path -- its Pekko remoting/serialization, seed-node config, or startActorWorker itself -- would break the deployed worker while build, unit tests, and the boot checks all stay green. The worker can't reuse smoke-boot.sh: it runs no HTTP server and binds a random Pekko remote port, so there is no fixed port to probe, and booted standalone it just retries its seed and stays up (so "did not crash" proves nothing). Its real health signal is cluster membership. Replace the standalone master boot step with a single cluster check. smoke-cluster.sh boots a computing-unit-master (non-cluster mode self-seeds pekko://Amber@localhost:2552) and a no-arg computing-unit-worker (joins :2552, skipping the getNodeIpAddress/checkip.amazonaws.com lookup that only fires with --serverAddr, so no external network), then asserts the worker JOINS by waiting for ClusterListener's "2 nodes in the cluster" readiness line on the master -- a deliberate signal, not a crash-scan (contrast apache#6332). Because it boots and waits for the master first, it still catches a apache#6204-class linkage crash on master startup (reported as "master exited before listening"), so the separate smoke-boot master step it supersedes is redundant. It fails fast if either JVM dies and reaps both on exit. Wired into amber-integration after the texera-web boot, reusing the same dist; ubuntu-only. test_smoke_cluster.sh drives the harness end-to-end with fake launchers, asserting the specific verdict message for each outcome so a deleted fast-fail branch turns the test red. Closes apache#6523.
mengw15
force-pushed
the
ci/6523-cu-worker-cluster-join-smoke
branch
from
July 21, 2026 22:09
52e89d2 to
6d76dcb
Compare
mengw15
marked this pull request as ready for review
July 21, 2026 22:34
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.
What changes were proposed in this PR?
Nothing in CI verified that an amber worker node can join a running cluster. The standalone
computing-unit-masterboot check (#6377) forms only a 1-node self-seeded cluster,texera-webdoesn't touch clustering, and the packagedcomputing-unit-workerlauncher (bin/computing-unit-worker) is never started at all. A regression in the worker's join path — its Pekko remoting/serialization, seed-node config, orstartActorWorkeritself — would break the deployed worker while build, unit tests, and the boot checks all stay green.The worker can't reuse
smoke-boot.sh:ComputingUnitWorker.mainonly callsAmberRuntime.startActorWorker, which runs no HTTP server and bindspekko.remote.artery.canonical.port = 0(a random ephemeral port), so there is no fixed port to probe. Booted standalone it just retries its seed and stays up, so a "did not crash" check proves nothing — the worker's real health signal is cluster membership..github/scripts/smoke-cluster.sh— a self-contained harness that boots acomputing-unit-master(non-cluster mode self-seedspekko://Amber@localhost:2552and serves Dropwizard on:8085) and a no-argcomputing-unit-worker(defaults its seed tolocalhost:2552and skips thegetNodeIpAddress→checkip.amazonaws.comlookup that only fires with--serverAddr, so no external network), then asserts the worker actually JOINS — waiting forClusterListener'sNow we have 2 nodes in the clusterreadiness line on the master (a deliberate signal, not a crash-scan; contrast smoke-boot.sh false positive: jOOQ "tip of the day" text matches the crash regex and fails boot checks at random #6332). It fails fast if either JVM dies and reaps both on exit.smoke-cluster.shboots the master, waits for it to listen on:8085, and verifies it self-joins its 1-node cluster before launching the worker — so a texera-web fails to start after Hadoop 3.4.3 upgrade: NoClassDefFoundError from pjfanning jersey-json #6204-class linkage crash on master startup is still caught (reported asmaster exited before listening). The separatesmoke-boot.shmaster step (ci: add a computing-unit-master boot smoke test in amber-integration #6377) is a strict subset of this, so it's removed rather than run redundantly. Wired intoamber-integrationafter thetexera-webboot, reusing the amber dist already built there.ubuntu-latestonly..github/scripts/test_smoke_cluster.sh— drives the harness end-to-end with fake launchers (6 cases), asserting the specific verdict message for each outcome so that deleting a fast-fail branch (and letting a case pass only via the slow timeout) turns the test red. The happy path ties the join signal to the worker actually running, so it can't pass if the worker is never launched. Discovered and run by theinfrajob.Any related issues, documentation, discussions?
Closes #6523, raised from the #6377 review (suggested by @Yicong-Huang). Supersedes the standalone
computing-unit-masterboot step from #6377 (this cluster check boots and verifies the master too); complements thetexera-webboot (#6319). Smoke rationale from #6220.How was this PR tested?
amber-integration(ubuntu-latest) runs the new step in this PR: the master and worker boot, the worker joins, and the master logs2 nodes in the cluster.test_smoke_cluster.shpasses 6/6 locally on bash 3.2.57 (macOS) and bash 5; mutation-tested — deleting the worker-alive fast-fail, the master-alive fast-fail, or the worker launch each turns the test red;shellcheckclean; deterministic across repeated runs with no leftover processes.AmberRuntime.startActorMaster/startActorWorker: the non-cluster master self-seedslocalhost:2552, and a no-arg worker joins it while skipping thecheckip.amazonaws.comlookup.Was this PR authored or co-authored using generative AI tooling?
Generated-by: Claude Code (claude-opus-4-8)