You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@texera.apache.org by "aglinxinyuan (via GitHub)" <gi...@apache.org> on 2026/08/14 09:35:51 UTC
[I] Cover the runtime's serde bootstrap and worker startup [texera]
aglinxinyuan opened a new issue, #7662:
URL: https://github.com/apache/texera/issues/7662
### Task Summary
`amber/src/main/scala/org/apache/texera/amber/engine/common/AmberRuntime.scala` has **no spec**. It owns the actor system the rest of amber leans on, the serialization extension every message passes through, and the scheduling helpers services use for recurring work — and none of it is verified.
Most of it is drivable with no cluster, which is the part worth knowing: `startActorWorker(None)` builds its whole system with artery on **port 0** in under 100 ms, makes no network call, leaves `ClusterListener.numWorkerNodesInCluster` at 0, and tears down again. So the entire `ComputingUnitWorker` startup path — the seed-node URI, the master address, the artery host binding, the config fallback chain, and the two child actors — can be asserted directly.
Two regions are genuinely out of reach and should be left alone: `getNodeIpAddress` and `startActorMaster`, which bind real network interfaces.
**The overriding constraint.** amber sets neither `Test / fork` nor `Test / parallelExecution := false`, so every amber suite shares one JVM — and this file *is* the JVM-global state (`_actorSystem`, `_serde`, `AmberConfig.masterNodeAddr`) that other suites depend on. Any spec here must save and restore those by reflection, as about eight sibling specs already do, terminate everything it starts, and be **run alongside other runtime-touching suites to prove it**.
Three traps, each of which produces an assertion that looks strong and pins nothing:
1. **`pekko.remote.artery.transport == "tcp"` is pekko's own `reference.conf` default.** Asserting it holds even if `pekkoConfig` is dropped from the fallback chain entirely. Assert something only `cluster.conf` supplies — the kryo serializer binding, for instance.
2. **`AmberConfig.masterNodeAddr`'s default already equals the value a test would expect** (`Address("pekko", "Amber", "localhost", 2552)`). Without pre-seeding a sentinel, deleting the production write leaves the assertion green.
3. **Comparing a system's *name* is not comparing the system.** A serde built over a different `ActorSystem("Amber", …)` satisfies a name check, so the identity has to be compared with `eq`.
Also worth knowing when measuring: `pekko.remote.artery.canonical.port = 0` is already in `cluster.conf`, so the production override of it is unobservable — do not write a test for that line.
### Task Type
- [ ] Refactor / Cleanup
- [ ] DevOps / Deployment / CI
- [x] Testing / QA
- [ ] Documentation
- [ ] Performance
- [ ] Other
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [I] Cover the runtime's serde bootstrap and worker startup [texera]
Posted by "aglinxinyuan (via GitHub)" <gi...@apache.org>.
aglinxinyuan closed issue #7662: Cover the runtime's serde bootstrap and worker startup
URL: https://github.com/apache/texera/issues/7662
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org