Yicong-Huang opened a new issue, #6096:
URL: https://github.com/apache/texera/issues/6096

   ### What happened?
   
   `bin/local-dev.sh up --build` reports a successful build (`sbt: dist done`, 
`artifacts unzipped`), but the seven JVM services never come up. Two 
independent defects in the CLI-only sbt knobs added to `build_all()` in 
`bin/local-dev/main.sh` (#6087) each make `sbt <svc>/dist` produce a dist that 
cannot run:
   
   1. `set every (Compile / doc / sources) := Seq.empty` — `set every` ignores 
the scope you write and sets the shared `sources` key in *every* scope, 
including `Compile / sources`. Compilation input becomes empty, no main class 
is discovered, and sbt-native-packager prints `You have no main class in your 
project. No start script will be generated.` The dist zip ships no 
`bin/<service>` launcher, so local-dev reports `launcher missing at ...`.
   
   2. `-Dsbt.pipelining=true` — with pipelining, inter-project dependencies are 
consumed as early-output signature jars, and the dist then omits the real 
dependency jars (`dao`, `auth`, `config`, `resource`) from `lib/`. Each service 
starts and immediately dies with `NoClassDefFoundError` on a sibling-module 
class (e.g. `org/apache/texera/dao/SqlServer$`).
   
   Both were masked as long as a prior good dist existed on disk (the build was 
skipped by the `all_launchers_present` gate); once a rebuild actually fires, 
they surface.
   
   ### How to reproduce?
   
   From a clean checkout with the infra up:
   
   1. `bin/local-dev.sh up --build`
   2. All services report `launcher missing` (defect 1); with defect 1 removed, 
they instead crash at startup with `NoClassDefFoundError: 
org/apache/texera/dao/SqlServer$` (defect 2).
   
   Minimal isolation (single variable each):
   
   - `sbt 'set every (Compile / doc / sources) := Seq.empty' 
ConfigService/dist` → `Compile / sources` = 0 files, `discoveredMainClasses` 
empty, zip has no `bin/`. Without the flag, `bin/config-service` is generated.
   - `sbt -Dsbt.pipelining=true ConfigService/dist` → `lib/` is missing the 
`dao/auth/config/resource` jars. Without the flag, `dao` (289 KB, contains 
`SqlServer$`) is present.
   
   ### Version/Branch
   
   1.3.0-incubating-SNAPSHOT (main)
   
   ### Commit Hash
   
   Introduced in #6087 (5786a10a7); both flags present at 
`bin/local-dev/main.sh` `build_all()` on current main.
   
   ### Relevant log output
   
   ```
   [warn] You have no main class in your project. No start script will be 
generated.
   ✗  config-service: launcher missing at 
./target/config-service-1.3.0-incubating-SNAPSHOT/bin/config-service
   
   Exception in thread "main" java.lang.NoClassDefFoundError: 
org/apache/texera/dao/SqlServer$
           at 
org.apache.texera.service.ConfigService.initialize(ConfigService.scala:48)
   Caused by: java.lang.ClassNotFoundException: org.apache.texera.dao.SqlServer$
   ```
   


-- 
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