Skip to content

Rust build fails on shared runner, works everywhere else

I'm not sure if this should be filed here, but the blog post on the new Windows shared runners says I should file it here.

I have a project that compiles on:

  • A local Windows VM with 8 GB of RAM
  • A Windows VM I launched on GCP, installed necessary tooling into, installed the GitLab runner, and connected to my project

It fails to build on shared VMs. The error I get is:

   Compiling gdnative-bindings v0.8.0
memory allocation of 32374784 bytes failed
error: could not compile `gdnative-bindings`.

Caused by:
  process didn't exit successfully: `rustc --crate-name gdnative_bindings --edition=2018 C:\Users\gitlab_runner\.cargo\registry\src\github.com-1ecc6299db9ec823\gdnative-bindings-0.8.0\src\lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts --crate-type lib --emit=dep-info,metadata,link -C opt-level=3 -C metadata=46cbf32cf0256a74 -C extra-filename=-46cbf32cf0256a74 --out-dir C:\GitLab-Runner\builds\lightsoutgames\godot-tts\target\x86_64-pc-windows-msvc\release\deps --target x86_64-pc-windows-msvc -L dependency=C:\GitLab-Runner\builds\lightsoutgames\godot-tts\target\x86_64-pc-windows-msvc\release\deps -L dependency=C:\GitLab-Runner\builds\lightsoutgames\godot-tts\target\release\deps --extern bitflags=C:\GitLab-Runner\builds\lightsoutgames\godot-tts\target\x86_64-pc-windows-msvc\release\deps\libbitflags-90ecca2af791642d.rmeta --extern gdnative_core=C:\GitLab-Runner\builds\lightsoutgames\godot-tts\target\x86_64-pc-windows-msvc\release\deps\libgdnative_core-a6d75391be0ce9e4.rmeta --extern gdnative_sys=C:\GitLab-Runner\builds\lightsoutgames\godot-tts\target\x86_64-pc-windows-msvc\release\deps\libgdnative_sys-ce7daf82d70ee84c.rmeta --extern libc=C:\GitLab-Runner\builds\lightsoutgames\godot-tts\target\x86_64-pc-windows-msvc\release\deps\liblibc-10b8e6738dc5aeab.rmeta --cap-lints allow` (exit code: 0xc0000409, STATUS_STACK_BUFFER_OVERRUN)
ERROR: Job failed: exit status 1

I'm a Linux user with little knowledge of Windows server maintenance, so I'd really rather build this open source project on your shared Windows runners, even if I have to pay for it at some point. But I don't know why my builds fail on your shared runners but work everywhere else, including the private group runner I set up a while back. Granted, I installed my own tooling on the group runner and am using Choco in the build script, but it gets the same versions. My suspicion was that I was running out of RAM, but again, my local VM has 8G and finishes builds just fine, and I think but am not certain that my GCP VM only had 4G.

Thanks for any help.