avantgardnerio opened a new pull request, #2380:
URL: https://github.com/apache/datafusion-ballista/pull/2380

   # Which issue does this PR close?
   
   None.
   
   # Rationale for this change
   
   `dev/docker/*.Dockerfile` are not hermetic. The binary is compiled on the 
**host** by `dev/build-ballista-docker.sh`, and each image then does:
   
   ```dockerfile
   COPY target/${RELEASE_FLAG}/ballista-executor /root/ballista-executor
   ```
   
   So the host's glibc must be no newer than the base image's. Building on 
Ubuntu 26.04 (glibc 2.43) against `ubuntu:24.04` (glibc 2.39) produces images 
that fail at the dynamic loader, before `main` runs:
   
   ```
   /root/ballista-executor: /lib/x86_64-linux-gnu/libm.so.6:
       version `GLIBC_2.43' not found (required by /root/ballista-executor)
   ```
   
   The scheduler and executor crash-loop immediately, which on a Kubernetes 
deployment looks like an application fault rather than a build-environment 
mismatch.
   
   # What changes are included in this PR?
   
   Bumps the five runtime images that copy a host-built binary from 
`ubuntu:24.04` to `ubuntu:26.04`:
   
   - `ballista-scheduler`
   - `ballista-executor`
   - `ballista-benchmarks`
   - `ballista-standalone`
   - `ballista-cli`
   
   `chaos.Dockerfile` is deliberately **not** changed: it builds inside 
`rust:1-bookworm` and runs on `debian:bookworm-slim`, so it carries its own 
toolchain and does not depend on the host's glibc.
   
   # Are these changes tested?
   
   Yes. All five images were rebuilt on this base and exercised on a 4-node EKS 
cluster running h2o benchmarks at 1e9 rows — scheduler and executors registered 
and ran queries to completion. Each binary was also smoke-tested inside its 
image before deploy:
   
   ```
   $ docker run --rm --entrypoint /root/ballista-executor <image> --version
   ballista-executor 54.0.0
   ```
   
   Building on an older host (e.g. CI on `ubuntu-24.04`) is unaffected: an 
older-glibc binary runs fine on a newer base.
   
   # Are there any user-facing changes?
   
   The published images move to an `ubuntu:26.04` userland.
   
   One limitation worth stating plainly: **this raises the floor rather than 
making the build hermetic.** A host newer than the base image will break again 
in exactly the same way. The complete fix is to compile inside a container 
matching the runtime base, at the cost of a separate target directory per 
image; that seemed like a larger change than this bug warranted, but I'm happy 
to do it that way instead if maintainers prefer.
   


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


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to