Parallels executor + Win11 (Arm) stuck on "Creating new VM..."

Summary

Steps to reproduce

The Parallels executor is not functioning correctly.

  1. Create Windows 11 image via "Paralles->New->Get Windows 11 from Microsoft"
  2. Verify Parallels Tools is installed (it is)
  3. Install OpenSSH and PowerShell (as per https://docs.gitlab.com/runner/executors/virtualbox.html#use-native-openssh-and-powershell)
  4. Ensure that ssh is correctly configured and can log in to image with username & password
  5. Register runner
  6. Run a simple test job
.gitlab-ci.yml
TestWin:
  script:
    - echo Allo!
  tags:
    - us-build-vm-win

Actual behavior

When I attempt to run a simple test job, it hangs on "Creating new VM...".

VMs appear to be created properly. My base VM is called 'win11-base' and I see that the runner creates 'win11-base-template' and 'win11-base-runner-bm66aFkbQ-concurrent-1'.

While it's stuck on "Creating new VM...", if I run prlctl list win11-base-runner-bm66aFkbQ-concurrent-1 --info then I can see the IP for the machine and can successfully ssh in using the creds in config.toml.

Expected behavior

It should detect the VM is available and use it to execute the job.

Relevant logs and/or screenshots

job log
Running with gitlab-runner 17.1.0 (fe451d5a)
  on us-build-mac-mini-1-parallels bm66aFkbQ, system ID: s_e80ae147e612
Preparing the "parallels" executor 01:06:45
Using Parallels 19.4.1 executor...
Creating new VM...
ERROR: Preparation failed: calling prlctl: 
Will be retried in 3s ...
Using Parallels 19.4.1 executor...
Creating new VM...
ERROR: Preparation failed: calling prlctl: 
Will be retried in 3s ...
Using Parallels 19.4.1 executor...
Creating new VM...
ERROR: Job failed: execution took longer than 1h0m0s seconds

Environment description

Custom installation

config.toml contents
concurrent = 3
check_interval = 3
connection_max_age = "15m0s"
shutdown_timeout = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "us-build-mac-mini-1-parallels"
  url = "https://<company-gitlab-instance>"
  id = 40218
  token = "..."
  token_obtained_at = 2024-07-12T22:01:24Z
  token_expires_at = 0001-01-01T00:00:00Z
  executor = "parallels"
  log_level = "debug"
  shell = "pwsh"
  [runners.custom_build_dir]
  [runners.cache]
    MaxUploadedArchiveSize = 0
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]
  [runners.ssh]
    username = "admin"
    password = "admin"
    port = "22"
    disable_strict_host_key_checking = true
  [runners.parallels]
    base_name = "win11-base"
    disable_snapshots = false
    parallels_tools_version = "19.4.1"

Used GitLab Runner version

> gitlab-runner version
Runtime platform                                    arch=arm64 os=darwin pid=13832 revision=fe451d5a version=17.1.0

Parallels version

Parallels Desktop 19 for Mac Pro Edition Version 19.4.1 (54985)

> prlctl --version                                           
prlctl version 19.4.1 (54985)

Possible fixes

Edited by Chris Hardy