mengw15 opened a new pull request, #6271:
URL: https://github.com/apache/texera/pull/6271

   ### What changes were proposed in this PR?
   
   CI builds each service's distributable and runs its unit tests, but never 
**starts** the packaged service, so runtime classpath/linkage problems that 
compile and unit-test clean — but crash the moment `main` runs — slip through. 
Two recent dependency bumps did exactly this on `main`, caught only manually 
after merge: #6201 (Hadoop 3.4.3) crashed `texera-web` on boot with 
`NoClassDefFoundError` (fixed by #6205), and #6185 (Arrow 19) crashed 
`computing-unit-managing-service` at startup with a Jackson version conflict 
(fixed by #6209).
   
   This PR adds a boot smoke test:
   
   - **`.github/scripts/smoke-boot.sh`** — launches a packaged service from its 
unpacked dist and asserts it either reaches a listening state (`strict`) or, 
for a service that fail-fasts on infra this job doesn't provision, exits 
without a linkage/module error (`shallow`). A `NoClassDefFoundError` / 
`LinkageError` / `NoSuchMethodError` / Jackson-module conflict fails the check 
in any mode.
   - **`platform` job** — one boot check per matrix service, against the 
postgres already provisioned there. `file-service` uses `shallow` (it 
fail-fasts on MinIO + LakeFS, not provisioned here); the rest use `strict`.
   - **`amber` job** — a `strict` boot check for `texera-web`.
   
   Both past incidents crash early in init, so this catches that class of 
regression before merge without a fully provisioned environment.
   
   ### Any related issues, documentation, discussions?
   
   Closes #6220.
   Incidents this would have caught: #6204 / #6205 (texera-web, Hadoop→Jersey), 
#6206 / #6209 (computing-unit-managing-service, Arrow→Jackson). Triggering 
upgrades: #6201, #6185.
   
   ### How was this PR tested?
   
   Validated locally against a CI-equivalent postgres (`postgres:latest`, 
`postgres/postgres`, schema from `sql/texera_ddl.sql` + 
`sql/iceberg_postgres_catalog.sql` + `sql/texera_lakefs.sql`):
   
   - `config-service` (representative of the postgres-only platform services) 
launched from its `stage` dist → `smoke-boot.sh … 9094 strict` reached LISTEN, 
exit 0.
   - With postgres stopped: `strict` correctly failed (exit 1, HikariCP 
connection-refused dumped); `shallow` correctly passed (exit 0, no linkage 
error) — validating the `file-service` path and that infra-connection failures 
are not mistaken for linkage errors.
   - `texera-web` launched from the amber `stage` dist → `smoke-boot.sh … 8080 
strict` reached LISTEN, exit 0 (confirms `amberHomePath` config resolution and 
a postgres-only boot with no frontend-asset dependency).
   
   The other services (`access-control-service`, 
`computing-unit-managing-service`, `workflow-compiling-service`, 
`notebook-migration-service`) follow the same Dropwizard + 
`SqlServer.initConnection` postgres-only boot pattern as `config-service`.
   
   ### Was this PR authored or co-authored using generative AI tooling?
   
   Generated-by: Claude Code (claude-opus-4-8)
   


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to