Open dhiaayachi opened 2 months ago
temporal on arm64 Linux is working correctly.
temporal on arm64 Linux is not working correctly. The binaries are amd64 binaries.
Environment Setup: You're setting up temporal on k3s on Ubuntu 22.04 in Multipass on a Mac M1 with arm64 architecture.
ubuntu@temporal:~$ uname -m aarch64
Helm Deployment: After deploying temporal on k3s using Helm, some containers experience crashloopbackoff errors. The following containers are working:
The following containers are experiencing crashloopbackoff errors:
The error message is:
/etc/temporal/start-temporal.sh: line 16: /usr/local/bin/temporal-server: cannot execute binary file: Exec format error
You confirm that the correct arm64 containers are being pulled.
Container Inspection: Inside the temporal-admintools container, you find that the following binaries work:
The following binaries don't work, returning the error: /usr/local/bin/temporal-sql-tool: cannot execute binary file: Exec format error
:
You downloaded temporal-sql-tool to check it.
ubuntu@temporal:~$ file temporal-sql-tool temporal-sql-tool: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, Go BuildID=YKktCnQevbFAZNSNLwHy/GM78rayp1t0RHnJ99Q3e/vpPHjRcqExXPiFanYzQs/XafXwTQ1y_JNzqzuhTvq, with debug_info, not stripped
It seems you're encountering the issue because the binaries you're using are not arm64 but rather amd64.
The issue is that the Temporal binaries are not built for the arm64 architecture.
You have two main options to resolve this:
Use arm64 binaries: The most straightforward solution is to download and use the arm64 binaries. You can find these on the Temporal Releases Page.
Build arm64 binaries: Alternatively, you can build the arm64 binaries yourself. This requires a Go compiler environment configured for the arm64 architecture.
Once you have the correct arm64 binaries, ensure to rebuild the Docker images you're using in your k3s deployment and redeploy them to the cluster.
If you encounter further issues, you can:
By following the guidance in the Building Docker images section of our documentation and using the appropriate arm64 binaries, you should be able to successfully deploy Temporal on your arm64 Linux environment.
Thank you for reporting this issue.
It seems that the temporal-server
, temporal-sql-tool
, and tdbg
binaries are built for an amd64 architecture. These binaries are not compatible with the arm64 architecture of your Ubuntu 22.04 system.
Temporal Server v1.24.1 does not officially support ARM64 architecture yet, so unfortunately, we do not have any arm64 binaries available to you at the moment.
We do recommend using a different architecture, such as amd64
, while waiting for ARM64 compatibility to be added to Temporal Server.
If you continue to have issues, please feel free to report them on our Community Forum.
Expected Behavior
temporal on arm64 Linux is working correctly
Actual Behavior
temporal on arm64 Linux is not working correctly I believe the binaries are amd64 binaries
Steps to Reproduce the Problem
I am setting up temporal on k3s on ubuntu 2204 in Multipass on a Mac M1. architecture
ubuntu@temporal:~$ uname -m aarch64
2.After running helm to deploy the temporal on k3s, I get crashloopbackoff errors on some of the containers
running correctly... temporal-admintools temporal-web
crashloopbackoff... temporal-frontend temporal-history temporal-matching temporal-worker
error message....
/etc/temporal/start-temporal.sh: line 16: /usr/local/bin/temporal-server: cannot execute binary file: Exec format error
The correct arm64 containers are being pulled
working.... tctl temporal
not working... tdbg temporal-cassandra-toll temporal-sql-tool
temporal-sql-tool bash: /usr/local/bin/temporal-sql-tool: cannot execute binary file: Exec format error
i downloaded temporal-sql-tool to check it
ubuntu@temporal:~$ file temporal-sql-tool temporal-sql-tool: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, Go BuildID=YKktCnQevbFAZNSNLwHy/GM78rayp1t0RHnJ99Q3e/vpPHjRcqExXPiFanYzQs/XafXwTQ1y_JNzqzuhTvq, with debug_info, not stripped
It is an amd64 binary?
Specifications