Open dominik-pakosz opened 2 years ago
We use Palantir Graal plugin for our native builds. Unfortunately, Palantir doesn't accept contributions or PRs to this project (they just get stale and closed) and doesn't actively develop it. To fix this issue, this has to happen: https://github.com/palantir/gradle-graal/pull/469
An official Graal plugin for Gradle doesn't have this problem, but it doesn't provision GraalVM and native-image and requires them to be installed and configured in the system. This makes the usage tricky in an open-source project until https://github.com/graalvm/native-build-tools/issues/100 is resolved. It looks like Gradle team is moving quite slow with an essential feature and dependency to make it happen: https://github.com/gradle/gradle/pull/18028
Temporal has to fork Palantir Graal Plugin, merge required fixes and publish to the Sonatype repo at some moment if this becomes a burning issue.
@Spikhalskiy thanks for explanation. I think is quite important topic, a lot companies started exchanging old intel macbooks with new one with arm. I am using Temporal and for me is a big problem because now I need to use CI which tooks ages and don't have a control.
Proper testing is basic of good application.
@cv65kr which download did you use? Try this one: https://github.com/temporalio/sdk-java/releases/download/v1.16.0/temporal-test-server_1.16.0_macOS_amd64.tar.gz. It's for Mac OS and should work with no additional steps, IIRC, with Rosetta. Which SDK are you using? The TypeScript and Python SDKs both automatically install the right executable for you.
The newest one for Temporal test server (In general I tried multiple versions).
PHP SDK - https://github.com/temporalio/sdk-php/blob/master/testing/src/Downloader.php#L29 looks like is not working out of box
Hmm.. the code you sent LGTM at first glance, can you check which file it downloads?
@cv65kr Could you download, unpack and try to run the specific artifact @bergundy pointed? https://github.com/temporalio/sdk-java/releases/download/v1.16.0/temporal-test-server_1.16.0_macOS_amd64.tar.gz This one is expected to work on M1. If it doesn't, let us know.
@Spikhalskiy I tried this artifact. Result:
❯ docker-compose exec container-apache /bin/sh
# ./temporal-test-server
/bin/sh: 2: ./temporal-test-server: Exec format error
# exit
❯ docker-compose exec container-apache /bin/bash
root@a479b2380cc8:/src# ./temporal-test-server
bash: ./temporal-test-server: cannot execute binary file: Exec format error
root@a479b2380cc8:/src# exit
exit
Can you advise something more on that as it's not working as expected? 🤔
@bergundy Can you verify the same on your M1 Mac (https://github.com/temporalio/sdk-java/releases/download/v1.16.0/temporal-test-server_1.16.0_macOS_amd64.tar.gz)? It works just fine for me on Intel Mac, so I would expect M1 to be fine too, but let's double-check.
@dominik-pakosz you’re running in a docker container not directly on mac. We don’t yet have test server arm builds for linux
@bergundy is there any workaround for that? We are running tests inside arm dockers. I can say that outside of docker working properly.
You can run your containers with --platform amd64
it slows things down but it works.
We want to support arm builds for both mac and linux, I hope we can get the done relatively soon.
@bergundy is there any time frame when you expect releases?
Yea, I can't as I'm installing a lot of packages depending on arm64 or aarch64. From our SRE team point of view we should not go in this direction. Is there any other solution?
This issue is blocked by https://github.com/palantir/gradle-graal/pull/469 as an external dependency. Temporal doesn't typically provide time commitments for improvements. We accept contributions and the Palantir Graal plugin we depend on to make it happen has an Apache license.
Expected Behavior
Test server running
Actual Behavior
Exception:
qemu-x86_64: Could not open '/lib64/ld-linux-x86-64.so.2': No such file or directory
thrownSteps to Reproduce the Problem
Specifications