ChristopherHX/runner.server

Runner.Worker Killed when running on macos M2

oilrich25 opened this issue · 6 comments

Runner.Worker crashes when running on macos M2. The version I am currently testing is v3.11.11.

oilrich25deMac-mini:Desktop oilrich25$ ./actions-runner/bin/Runner.Worker 
System.ArgumentOutOfRangeException: Length does not equal expected value. Expected '3'. Actual '0'. (Parameter 'Length')
Actual value was 0.
   at GitHub.Runner.Sdk.ArgUtil.Equal[T](T expected, T actual, String name)
   at GitHub.Runner.Worker.Program.MainAsync(IHostContext context, String[] args)
oilrich25deMac-mini:Desktop oilrich25$ ./runner.server-osx-arm64/bin/Runner.Worker 
Killed: 9
oilrich25deMac-mini:Desktop oilrich25$ file ./actions-runner/bin/Runner.Worker 
./actions-runner/bin/Runner.Worker: Mach-O 64-bit executable arm64
oilrich25deMac-mini:Desktop oilrich25$ file ./runner.server-osx-arm64/bin/Runner.Worker 
./runner.server-osx-arm64/bin/Runner.Worker: Mach-O 64-bit executable arm64


(lldb) target create "./runner.server-osx-arm64/bin/Runner.Worker"
Current executable set to '/Users/oilrich25/Desktop/gitea-actions-runner/runner.server-osx-arm64/bin/Runner.Worker' (arm64).
(lldb) run
error: process exited with status -1 (no such process.)
(lldb) breakpoint set --name main
Breakpoint 1: where = Runner.Worker`main, address = 0x000000010000d570
(lldb) run
error: process exited with status -1 (no such process.)

You cannot start Runner.Worker without specfic args.
My actions-runner-worker.ps1 or .py scripts are adding args and setup pipe communications.

To register and run against Runner.Server you would use Runner.Listener configure and Runner.Listener run

You cannot start Runner.Worker without specfic args. My actions-runner-worker.ps1 or .py scripts are adding args and setup pipe communications.

To register and run against Runner.Server you would use Runner.Listener configure and Runner.Listener run

I tried downgrading v3.11.11 to v3.9 and it works fine now

https://github.com/ChristopherHX/runner.server/releases/download/v3.9.0/actions-runner-osx-arm64-3.9.0.tar.gz

After testing, on mac M2, execute arm64 ubuntu
Docker containers are feasible. But unfortunately it can only run on 3.9.0 - 3.9.2 currently.

##[group]Run uname -a
uname -a
shell: bash --noprofile --norc -e -o pipefail {0}
env:
  CACHE_EPOCH: 1
  CCACHE_MAXFILES: 0
  CCACHE_MAXSIZE: 200M
  SCCACHE_CACHE_SIZE: 200M
##[endgroup]
Linux f54dd1cdb107 6.5.11-linuxkit #1 SMP PREEMPT Mon Dec  4 11:30:00 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux

v3.11.11, the Killed: 9 error occurred.

I noticed that the directory has changed a lot since v3.10.0. There is no bin directory after decompression.

Unfortunately, versions 3.9.2 - 3.9.0 only support node 16, so you can only use actions/checkout@v2. But in version 3.10 or above, Killed: 9 error occurred appears.

Current runner version: '3.9.0'
Secret source: Actions
Prepare workflow directory
##[command]/opt/homebrew/bin/docker version --format '{{.Server.APIVersion}}'
'1.43'
Docker daemon API version: '1.43'
##[command]/opt/homebrew/bin/docker version --format '{{.Client.APIVersion}}'
'1.43'
Docker client API version: '1.43'
Prepare all required actions
Getting action download info
Download action repository 'actions/checkout@v4' (SHA:N/A)
##[error]System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. (Parameter ''using: node20' is not supported, use 'docker', 'node12' or 'node16' instead.')\n   at GitHub.Runner.Worker.ActionManifestManager.ConvertRuns(IExecutionContext executionContext, TemplateContext templateContext, TemplateToken inputsToken, String fileRelativePath, MappingToken outputs)\n   at GitHub.Runner.Worker.ActionManifestManager.Load(IExecutionContext executionContext, String manifestFile)
##[error]Fail to load actions/checkout/v4/action.yml
Finished

I tried to pull the v3.11.11 branch of ChristopherHX/runner.server to my local MacOS M2 compilation, and now it runs normally.