SpectoLabs / hoverfly-java

Java binding for Hoverfly
Apache License 2.0
168 stars 58 forks source link

Wrong binary selected on arch64 machine #278

Closed musketyr closed 2 years ago

musketyr commented 2 years ago

Description of the bug

When running our test on AWS Graviton based GitHub runners then a wrong architecture is selected.

Steps to reproduce the issue

Observed result

07:21:08.804 [Test worker] INFO io.specto.hoverfly.junit.core.TempFileManager - Selecting the following binary based on the current operating system: hoverfly_linux_amd64 |  
-- | --
  | 07:21:08.806 [Test worker] INFO io.specto.hoverfly.junit.core.TempFileManager - Storing binary in temporary directory /tmp/hoverfly.15440599620828050/hoverfly_linux_amd64 |  
  | 07:21:08.921 [Test worker] INFO io.specto.hoverfly.junit.core.Hoverfly - Executing binary at /tmp/hoverfly.15440599620828050/hoverfly_linux_amd64 |  
  | 07:21:08.961 [Test worker] DEBUG org.zeroturnaround.exec.ProcessExecutor - Executing [/tmp/hoverfly.15440599620828050/hoverfly_linux_amd64, -pp, 41827, -ap, 45029, -logs, json] in /tmp/hoverfly.15440599620828050. |  
  | 07:21:08.987 [Test worker] DEBUG org.zeroturnaround.exec.ProcessExecutor - Started java.lang.UNIXProcess@19a35700 |  
  | 07:21:09.022 [WaitForProcess-java.lang.UNIXProcess@19a35700] DEBUG org.zeroturnaround.exec.WaitForProcess - java.lang.UNIXProcess@19a35700 stopped with exit code 126 |  
  | 07:21:09.041 [Thread-7] INFO hoverfly - /tmp/hoverfly.15440599620828050/hoverfly_linux_amd64: /tmp/hoverfly.15440599620828050/hoverfly_linux_amd64: cannot execute binary file |  
  | 07:21:09.135 [Test worker] DEBUG io.specto.hoverfly.junit.api.HoverflyClient - Hoverfly healthcheck failed: Failed to connect to localhost/127.0.0.1:45029

This actually happens for Mac M1 machines as well but they can handle it gracefully.

09:14:59.869 [Test worker] INFO io.specto.hoverfly.junit.core.TempFileManager - Selecting the following binary based on the current operating system: hoverfly_OSX_amd64
09:14:59.870 [Test worker] INFO io.specto.hoverfly.junit.core.TempFileManager - Storing binary in temporary directory /var/folders/p3/0rjgb_x955bf8zdy7mmsx6n40000gn/T/hoverfly.4696017361049517398/hoverfly_OSX_amd64
09:14:59.942 [Test worker] INFO io.specto.hoverfly.junit.core.Hoverfly - Executing binary at /var/folders/p3/0rjgb_x955bf8zdy7mmsx6n40000gn/T/hoverfly.4696017361049517398/hoverfly_OSX_amd64
09:14:59.949 [Test worker] DEBUG org.zeroturnaround.exec.ProcessExecutor - Executing [/var/folders/p3/0rjgb_x955bf8zdy7mmsx6n40000gn/T/hoverfly.4696017361049517398/hoverfly_OSX_amd64, -pp, 50246, -ap, 50247, -logs, json] in /var/folders/p3/0rjgb_x955bf8zdy7mmsx6n40000gn/T/hoverfly.4696017361049517398.
09:14:59.953 [Test worker] DEBUG org.zeroturnaround.exec.ProcessExecutor - Started java.lang.UNIXProcess@3deaa8f8

The ARM64 Linux is officially supported since Hoverfly 1.3.2.

Expected result

The ARM64 binaries are selected when running ARM64 architecture on Linux

07:21:08.804 [Test worker] INFO io.specto.hoverfly.junit.core.TempFileManager - Selecting the following binary based on the current operating system: hoverfly_linux_arm64

Additional relevant information

If not indicated above:

  1. Hoverfly Java version: 0.14.2
  2. Anything that might help us to diagnose the problem