bobbai00 opened a new issue, #5571:
URL: https://github.com/apache/texera/issues/5571
### What happened?
The scheduled **Build and push images** workflow fails on its `build-arm64`
job. All three service image builds (`texera-web-application` /
`texera-dashboard-service`, `computing-unit-master`, `computing-unit-worker`)
fail at the same step — regenerating the Python protobuf bindings during the
image build:
```
bin/python-proto-gen.sh: line 35: /usr/local/bin/protoc: No such file or
directory
ERROR: ... did not complete successfully: exit code: 127
```
**Cause:** the three Dockerfiles always download the **x86_64** `protoc`
release, regardless of the target platform:
```dockerfile
curl -fsSL -o /tmp/protoc.zip ".../protoc-${PROTOC_VERSION}-linux-x86_64.zip"
```
On the ARM64 build the x86_64 binary can't execute (the misleading "No such
file or directory" is the kernel failing to find the x86_64 ELF interpreter),
so `bin/python-proto-gen.sh` aborts with exit code 127. The AMD64 build runs
the binary natively and is unaffected — which is why only `build-arm64` fails.
This surfaced after #5077, which stopped version-tracking the generated
Python proto and began regenerating it during the image build, introducing this
`protoc` download step.
Affected files:
- `bin/texera-web-application.dockerfile`
- `bin/computing-unit-master.dockerfile`
- `bin/computing-unit-worker.dockerfile`
Expected: the image build downloads the `protoc` build matching the target
architecture, so all platforms build successfully.
### How to reproduce?
1. Run the **Build and push images** workflow (or wait for the scheduled
run) so the `build-arm64` job executes — it fails at the `protoc` /
`python-proto-gen.sh` step.
2. Or locally on any host with buildx + QEMU:
```
docker buildx build --platform linux/arm64 -f
bin/computing-unit-worker.dockerfile .
```
The build fails at the same step with `exit code: 127`.
### Version/Branch
1.3.0-incubating-SNAPSHOT (main)
### Commit Hash (Optional)
Introduced by d5bc8b7cf (#5077)
### Relevant log output
```shell
#32 [build 11/19] RUN PROTOC_VERSION=$(cat bin/protoc-version.txt) &&
curl -fsSL -o /tmp/protoc.zip ".../protoc-${PROTOC_VERSION}-linux-x86_64.zip"
... && bash bin/python-proto-gen.sh
#32 2.275 inflating: /usr/local/bin/protoc
#32 35.91 Successfully installed ... betterproto-2.0.0b7 black-26.5.1
jinja2-3.1.6 ...
#32 36.75 bin/python-proto-gen.sh: line 35: /usr/local/bin/protoc: No such
file or directory
#32 ERROR: process "/bin/sh -c ..." did not complete successfully: exit
code: 127
```
--
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]