dhiaayachi / temporal

Temporal service
https://docs.temporal.io
MIT License
0 stars 0 forks source link

temporal on arm64 Linux is not working correctly ...amd64 binaries? #130

Open dhiaayachi opened 2 months ago

dhiaayachi commented 2 months ago

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

  1. 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

  1. Looked inside the temporal-admintools container

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

dhiaayachi commented 2 months ago

Expected Behavior

temporal on arm64 Linux is working correctly.

Actual Behavior

temporal on arm64 Linux is not working correctly. The binaries are amd64 binaries.

Steps to Reproduce the Problem

  1. 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

  2. Helm Deployment: After deploying temporal on k3s using Helm, some containers experience crashloopbackoff errors. The following containers are working:

    • temporal-admintools
    • temporal-web

    The following containers are experiencing crashloopbackoff errors:

    • temporal-frontend
    • temporal-history
    • temporal-matching
    • temporal-worker

    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.

  3. Container Inspection: Inside the temporal-admintools container, you find that the following binaries work:

    • tctl
    • temporal

    The following binaries don't work, returning the error: /usr/local/bin/temporal-sql-tool: cannot execute binary file: Exec format error:

    • tdbg
    • temporal-cassandra-tool
    • temporal-sql-tool

    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.

Specifications

Potential Solutions

The issue is that the Temporal binaries are not built for the arm64 architecture.

You have two main options to resolve this:

  1. Use arm64 binaries: The most straightforward solution is to download and use the arm64 binaries. You can find these on the Temporal Releases Page.

  2. 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.

References

Further Help

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.

dhiaayachi commented 1 month ago

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.