Skip to content

ARM64 Docker image build fails: protoc is downloaded for x86_64 only #5571

@bobbai00

Description

@bobbai00

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No fields configured for Bug.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions