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
See: https://github.com/apache/texera/actions/runs/27113704522/job/80016484645
Cause: the three Dockerfiles always download the x86_64 protoc release, regardless of the target platform:
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?
Version/Branch
1.3.0-incubating-SNAPSHOT (main)
Commit Hash (Optional)
Introduced by d5bc8b7 (#5077)
Relevant log output
#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
What happened?
The scheduled Build and push images workflow fails on its
build-arm64job. 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:See: https://github.com/apache/texera/actions/runs/27113704522/job/80016484645
Cause: the three Dockerfiles always download the x86_64
protocrelease, regardless of the target platform: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.shaborts with exit code 127. The AMD64 build runs the binary natively and is unaffected — which is why onlybuild-arm64fails.This surfaced after #5077, which stopped version-tracking the generated Python proto and began regenerating it during the image build, introducing this
protocdownload step.Affected files:
bin/texera-web-application.dockerfilebin/computing-unit-master.dockerfilebin/computing-unit-worker.dockerfileExpected: the image build downloads the
protocbuild matching the target architecture, so all platforms build successfully.How to reproduce?
Version/Branch
1.3.0-incubating-SNAPSHOT (main)
Commit Hash (Optional)
Introduced by d5bc8b7 (#5077)
Relevant log output